more pathfinding, movement refactor