This is only here for testing and you should not use this in your code
@visibleForTesting final Map<Type, Object> singletons;