Graph looks good. For Objects, I'm fine with getData, although it should return a const pointer so that no data gets changed. If there are only a few data items (<5), then the accessor methods would probably be best. Could it be possbile to split the data into subbroups, such as getConnections(), getSubprograms(), getFields(), etc. That may make my life even easier.