rename head files in lib
make a new class factory, and refactor the component manager