<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def targets(self):
 """Provides an ordered list of CodeElement instances for each of the embedded module procedures in the generic interface. """

        if self._targets is None:
            self._targets = {}
            for key in self.procedures:
                element = self.module.parent.get_executable(key)
                if element is not None:
                    self._targets[key] = element
                else:
                    self._targets[key] = None
                    msg.warn("unable to locate module procedure {}".format(key) +
                             " in interface {}".format(self.name))

        return [self._targets[key] for key in self.procedures]