fix errors with types
better types
offset-limit implementation and tests
small refactor, rename 'join' to 'with'