<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def open(self, filename, mode='r', **kwargs):
        '''
        Open the file and return a file-like object.

        :param str filename: The storage root-relative filename
        :param str mode: The open mode (``(r|w)b?``)
        :raises FileNotFound: If trying to read a file that does not exists
        '''
        if 'r' in mode and not self.backend.exists(filename):
            raise FileNotFound(filename)
        return self.backend.open(filename, mode, **kwargs)