making hashes and compression optional