removed deep assign and shallow assign