Changed Factory from Class to Interface with Proxy object and
InvocationHandler to facilitate Decorator pattern introduction