Ok I got it working thank you everyone for your advice, it really helped. Just one last question though: Even though the instance of the Monster disappears on screen (3d object is not rendered), is there a way to make sure the memory that was holding the instance is properly "cleaned"?
No. It depends on the runtime and the operating system. For all you know it could be cached somewhere else in memory, or even in the swapfile on disk. But you should not have to even care what happened to the underlying memory, as long as you properly issued the delete statement indicating you no longer require use of this instance (unless you need it to be securely deleted, for security reasons or whatever).
In other words, if you've deleted the appropriate pointers, your worries end right there. From your perspective, everything happening at a lower level is assumed to work.