deep extends objects and concatenates arrays