added unit tests and string docs