Refactored the spaceship code into many separate components.