push and merge