handle booleans first