created factory and beans
create controller
create abstract controller