refactor assign expr / expr