Improved entity component system