converted to vector operations on pointers, readded ship