add repository and unit of work interfaces