if every monster of the same type is always in the same location, always has the same hp, always has the same [other stat], then what you're doing is fine, other than that you have to have separate instances in some manner. how many monsters on a level are we talking? if the monsters are going to be in and out like crazy, you could create a monster memory pool (allocate a pre-calculated/guessed number of monsters in advance). alternatively, you could try not deleting the monster until the level is deleted, but just have another boolean for the monsters - you already know if they're dead using isDead