def from_dataset(cls, *args, **kwargs):
        """Construct an ArrayList instance from an existing base dataset

        Parameters
        ----------
        %(ArrayList.from_dataset.parameters)s
        main: Project
            The main project that this project corresponds to

        Other Parameters
        ----------------
        %(ArrayList.from_dataset.other_parameters)s

        Returns
        -------
        Project
            The newly created project instance
        """
        main = kwargs.pop('main', None)
        ret = super(Project, cls).from_dataset(*args, **kwargs)
        if main is not None:
            ret.main = main
            main.extend(ret, new_name=False)
        return ret