+ adding database backend + relevant test cases + completing chapter 4a