<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def goto(self, position, duration, wait=False, accurate=False):
 """ Goes to a given cartesian position. :param list position: [x, y, z] representing the target position (in meters) :param float duration: move duration :param bool wait: whether to wait for the end of the move :param bool accurate: trade-off between accurate solution and computation time. By default, use the not so accurate but fast version. """

        if len(position) != 3:
            raise ValueError('Position should be a list [x, y, z]!')

        M = eye(4)
        M[:3, 3] = position
        self._goto(M, duration, wait, accurate)