I feel like I want to be implementing a Project interface or having a Project abstract class here.  Whats the accepted way of doing this stuff in Ruby land?