updating with support for pipe-form if expressions