improve inheritance