moved non-binary ops outside module