modified to update, not replace