Factored hash out into its own module