added assign by tuple support