inline fun <reified T : Any> register(crossinline body: (ComponentContainer) -> T): Unit
inline fun <reified T : Any> register(crossinline body: () -> T): Unit