combining operations extensible