Initial version (4 hash functions still missing)