almost finish parser.rb