beginning repository implementation