refactor codebase to provide common interfaces ; add mongo implementation ; setup common integration testing framework (note: incomplete state)