Added DataStore abstraction and some test cases