refactor cannon movements
more refactoring on mobility