Defining dependencies between tasks