merge code by llh