[impl] add class Repository