repository interfaces