change API to remove the need for a "current context" and allow passing the context as options