almost finish HW04, no challenge problem
complete hw04, not perfect..