implemented higher half kernel