inheritance closer to canonical pattern