Entity-Component-System

I can understand why cat you design like this, for manage.But I don't think this is a very good solution. If a customer wants to create a custom entity, does he get way? This version is just for test, we can discuss about this later.