even though these classes are tiny, the common convention in ruby would be to put them in their own file