refactor the constructor of Rover