basic discovery impl