Switch location of unsafe block
Use struct of options instead of trait.
Update README