in dev branch
merge with no-ff
a little modify