refactor2
merge