More pidgeonhole.rb, still incomplete