refactor main and rover parser