[Evgeny, Jason] function deepExtend