handle nonempty string