Refactored ship state classes - used static method for exception