separate implementations into other repository, and fix docs/tests