anchor.diff:      _log.finer('Completed composite command "${composite.name}"');
     }
   
  -  Future _executeOnConcurrentProjects(DependencyGraph projectGraph,
  +  Future _executeOnConcurrentProjects(JefeProjectGraph projectGraph,
         ProjectCommand command, ProjectFilter filter) async {
       return await new Stream.fromIterable(
  -        projectGraph.depthFirst.map((ProjectDependencies pd) async {
  -      if (filter(pd.project)) {
  -        return await command.process(pd.project,
  -            dependencies: pd.directDependencies);
  +            projectGraph.depthFirst.map((JefeProject pd) async {
  +      if (filter(pd)) {
  +        return await command.process(pd, dependencies: pd.directDependencies);
         }
  -    }).toList()).asyncMap((result) => result).toList();
  +    }).toList())
  +        .asyncMap((result) => result)
  +        .toList();
     }
   
     Future executeOn(ProjectCommand command, String projectName) async {
  -    final DependencyGraph graph =
  -        await getDependencyGraph(await _projectGroup.allProjects);
  -    final projectDependencies = graph.forProject(projectName);
  -    return await command.process(projectDependencies.project,
  -        dependencies: projectDependencies.directDependencies);
  +    final JefeProjectGraph graph =
  +        await getRootProjects(await _projectGroup.allProjects);
  +    final jefeProjectOpt = graph.getProjectByName(projectName);
  +    if (jefeProjectOpt is None) {
  +      throw new ArgumentError.value(
  +          projectName, 'projectName', 'No such project found');
  +    }
  +    final jefeProject = jefeProjectOpt.get();
  +
  +    return await command.process(jefeProject.project,
  +        dependencies: jefeProject.directDependencies);
     }
   
     Future executeOnGraph(ProjectDependencyGraphCommand command,
  
positive.code: 
    @override
    Future execute(Command command,
        {CommandConcurrencyMode concurrencyMode: CommandConcurrencyMode.concurrentProject,
        ProjectFilter filter: _noOpFilter}) async {
      if (command is ProjectCommand) {
        return executeOnProject(command,
  
negative.code: import 'package:jefe/src/project_commands/project_command_executor.dart';
  import 'package:jefe/src/project/dependency_graph.dart';
  import 'package:jefe/src/project/project_group.dart';
  import 'package:jefe/src/project/jefe_project.dart';
  import 'package:option/option.dart';
  
  Logger _log = new Logger('jefe.project.commands.impl');
  
  