implementing merge with default options