added componentfactory interface