updated cpu.c