<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_node(self, *args, **kwargs):
 """ Creates a new IOU VM. :returns: IOUVM instance """


        with (yield from self._iou_id_lock):
            # wait for a node to be completely created before adding a new one
            # this is important otherwise we allocate the same application ID
            # when creating multiple IOU node at the same time
            application_id = get_next_application_id(self.nodes)
            node = yield from super().create_node(*args, application_id=application_id, **kwargs)
        return node