Split up Store into several smaller, mostly independent, modules