cleanup, don't worry about who owns the strings because we'll use std::string to manage lifetime