should explicitly return true/false in C++, rather than relying on C-ish stuff like this