rewrite unread using a new FFI strategy
remove unused show instances