Change #hash method to use Array#hash which has better uniformity
Refactor block to use a Method object