If everything is public, make an struct better. It also seems more consistent taking into account that you made the GraphNode an struct.