added an initial proxy implementation