We can also use can.Construct here (the class system from CanJS without any observe or model or controller functionality).  Might make things clearer/cleaner.