Fair amount of refactoring and some additional operators.