part 3 finished

use generic views instead writing views yourself