make a note that it's sometimes okay to pass raw pointers to smart pointers