modify models of product for abstract inheritance