add abstract wrapper repository