Extracted ship class and interface logic into separate files