Hey Ed, a Hash table could be an interesting way to do name lookups, and worth researching... one way to speed up object operations is to have a way to know if an object is in the current scene or not getting the base for an object also takes a fair ammount of time, I think is to make objects link back to their last used scene and base- so an object would have a Base* and a Scene* added to the struct, Heres how it would work * on initializing or changing a scenes, ob->scene and ob->base would be set to that scene, and its base in that scnen. * when removing an object from the current scene ob->scene and ob->base would be set to NULL So you could always know, without a loop * is the object in the current scene * the object base in the active scene (if above is true) At worst, you wont know weather the object is in a scene other then the active scene, but thats only if the object is in more then 1 scene at a time. in that case youd still need to to a full loop but In my experience, objects used in multiple scenes is useually limited to a smaller number and most lookups deal with the active scenes.