implemented read-from-string