Switched to proxy implementation so that I can get watches and notification working - should probably use gen-class so that I can get a type name in there.