improve code for apu.