libsodium refactor wip