USe proper product classes
Add more expectations
Implementation