assignment06 is a little hard