Model: allow more flexibility on subclassing