clean up task.run.
fix main runner.
fix validation logic to allow diamonds.
fix up runTasks. i think this might be more complex than necessary.