inheritance vs composition