added: function deep_merge