refactor the rover class and add coordinate class