implement resource discovery