first pass at vrclient.js