added Repository as a generic class for all DB operations