refactor cannon movement boundaries