Software reuse has long been a promising yet elusive tehcnology for improving software productivity and quality. One of the related problems is the lack of quality software components and the inability of developers to efficiently find them. We attack this problem by establishing a fully distributed repositories architecture, with which component sharing and circulation are encouraged. Tools are developed to facilitate access to repositories across network, and techniques using degradation functions and a component migratin history are introduced to further simplify component retrieval.