#3 some more path finding / proper A*