booleans are hard