Improve store layout, add cache