rewrite FsPickler & update unit tests