Moved all the functionality to the Proxy class so that it can be more readily used in a spring configured environment