Finishing memory product store
Refactoring + introduce collection memory store