Refactored ships into subclasses