hw408_hw1 codes without design