initial NamedTypes refactor by JPM