some modification but not in tutorial