finally finish the whole part totally correctly
the related change for the final result of hw5