adding interface and repo, refactor tests