ship class refactoring