add replate() and merge()