Initial checkin.

using std::string in the header is bad idea