a simple entity component system