constness and thread safety
use bool as appropriate