Ideas for general game engine / entity design