factored keys out into a separate module. added the shuffle order-preserving homomorphism for keys