merge with impl