Implement product class