requires #x:external #x:injected #x:type  #.name;