Add proxy implementation

Credits to spigot for initial implementation