make ResolvedKey an interface, ResolvedKeyImpl an impl
license all the things