Following the OOD in Ruby: SOLID Principles tutorial