Added a definition for the component factory
Added typedefs for the smart pointers