<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def execute_step(self, step):
 """ Execute the named step. Also control the multiplicity of input and output entities :param step: step to prepare input for :param kwargs: input to be prepared :return: dict of output by entity type """

        inputs = self.get_inputs(step.ins)
        outputs = defaultdict(list)
        for output in step.run(inputs):
            for k, v in output.items():
                outputs[k].extend(v)
        for output in step.finalise():
            for k, v in output.items():
                outputs[k].extend(v)
        self.unresolved_steps.remove(step)
        return outputs