<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def mount(cls, mount_point, lower_dir, upper_dir, mount_table=None):
 """Execute the mount. This requires root"""

        ensure_directories(mount_point, lower_dir, upper_dir)
        # Load the mount table if it isn't given
        if not mount_table:
            mount_table = MountTable.load()
        # Check if the mount_point is in use
        if mount_table.is_mounted(mount_point):
            # Throw an error if it is
            raise AlreadyMounted()
        # Build mount options
        options = "rw,lowerdir=%s,upperdir=%s" % (lower_dir, upper_dir)
        # Run the actual mount
        subwrap.run(['mount', '-t', 'overlayfs', '-o', options,
            'olyfs%s' % random_name(), mount_point])
        return cls(mount_point, lower_dir, upper_dir)