port the rest of hike.rb
style
bugfixes