another point: how takes care of deleting weapons? it is probably best to make them shared_ptr?