add more exception conditions
booleans