added unicode support. strings returned are utf-8