fix test
refactor, add abstraction in repo layer by adding protocol. rename package. update test.