Deep merge

Nothing awesome, merge if you like this implementation :p