explain the repository observer