use unsafePerformIO when unsafeDupablePerformIO is not available.

closes #1.
add more doc
bump version