added declaring class to the constructor proxy
added internal provider and resolution context and leveraged to clean up and speed up circular dependency handling