applying generic repository