refactored the code. How it handles relative positions are external to the map and robot and can be better generalized.