remove the responsibility of dynamic class creation, use external
this allow as to use different implementation of proxy class in the future