fun <T> construct(beanDefinition: BeanDefinition<T>): T
fun <T> construct(concreteClass: Class<out T>): T
fun <reified T> construct(): T