Update lab3-12 with all functional