worked on client and server proxy parts

Mostly is straight from slides but with some altercations since we have
to check for caching