variuos changes, Meal().subtract() is *broken*