add unique id to component classes based on typeid
implement ComponentManager class