added hasing and compression