Proper abstraction of Module store base class implemented

Read/Write inheritance split up into separate base classes