refactored ship so finally the set issue gone