support passing a superagent-like interface

closes #2