Refacotring to break project down into namespaces and to make it more extensible so that other implementations of agents can be tested against the original naive implementation by extendting IAStarAgent.