Added AbstractProduct