ruby shapgen refactoring part 1