adding Auto merge.
complete Auto merge.
new assert.
adding synchronized