reorganize assignment2