update to apply product API as gunnar's requirements
modify to apply to gunnar's requirements and to test store&forward logic