fun <T : Any> registerDefinition(concreteClass: Class<T>): Unit
fun <T : Any> registerDefinition(interfaceClass: Class<T>, concreteClass: Class<out T>): Unit