move binding to a separate package, comprehensive docs for most of the
API