Basic Store Implementation

Still early, this is a basic implementation, but I think we need to be better at sending smaller PR's, the mega long ones will just fatigue us as to reviews and lead to lower code quality over time.
We can make that change once your PR is merged.