add code by gjun