use interface instead of implementation in basicrepo resource