component; refactor repository