Cleaned up with some common idioms
Fixed descend

This is now functional on Ruby 2.0
Whitespace changes.