split out merger.go