/** Unscoped Provider is needed to extract Injector... */
private <T> T createProxy(final Key<T> key, final Provider<T> unscoped) {
try {
@SuppressWarnings("unchecked")
final T proxy = (T) Enhancer.create(key.getTypeLiteral().getRawType(), new InvocationHandler() {
@Override
public Object invoke(final Object o, final Method method, final Object[] objects) throws Throwable {
try {
return method.invoke(getObject(), objects);
} catch (final InvocationTargetException e) {