Reorganizing some code, adding more classes, specs.