main and dataset