Add opts parameter and shallow merge option
Update  with options description