WIP rethink Stores => Mutators

This is a more functional approach and simplifies the store model a
lot. Mutators are simply functions that executed after certain actions
happening, mutator functions are passed immutable state and they return
a new state that the system gets on the next "heartbeat"