Follow-up commit to move boolean operator into it's own class and add some convenience methods for constructing standard compositions.  See REPORT-685