cannon object and fire missile refactored