use Contravariant functors
update tests
version bump