smarter product class