spaces around string literals to conform with C++11
changed deprecated std::auto_ptr to std::unique_ptr