First stab at arrowhead refactoring

Yea, 
This was a refactoring that I want the whole way with.  I know I could have extracted the methods in question, but I honestly did not like the nested hash.  Needless to say, I did a little more work, but you be the judge.

Also, reference the arrowhead.rb file as well.  It essentially became a domain object for storing the data.

Thanks!
Don't use fail if you intend to catch it.

Further, I'm not sure that this is an *exceptional* case. That is to say, why not let it be empty & just key off of that?