Introduce BeanFactory for dependency order and improve UI