trying method_missing to reduce redundancy, not sure how I feel about it
I like this much better, no method_missing just looks up by hash input
refactoring
cleanup