boolean logic is hard