repositories, how do they work