implemented most of IDinnerModel