Refactor Proxy to be an interface with fewer dependencies

Signed-off-by: Phan Le <ple@pivotallabs.com>