beginning of trying to add a data access protocol so we can swap out an in memory version for testing