option::unwrap isn't necessary
fix mutability in the extern function types