WIP: Adding constellation of classes for Product

Avoiding the mess of sticking a bunch of OpenStructs in there this time around.