finished the A* part except for the fact that it doesn't return a path