adds and abstract data store