add mode2 functions