added CPU::run() method