smart pointers, more unicode