add safe bool idiom