add ReadKey util
separate out EdgeInfo for use in another tool
laying out a bit of discovery infrastructure