should we make this a generic delegator? I probably could've used this pattern with Oauth as well.