why a shared pointer for a bool??