added interface for persistance layer (store). Changes are queued up in models, and on Model.persist() the queue is optimised and run though supplied CRUD functions to store data. Data can be fetched from the store using Model.fetch(), which is called automatically when a store is speficied