improved documentation
make create error nicer to non-string messages