allow commands containing nulls to be handled, use std::string