Complete #16
Fixes #16 and makes salt private (can't see why it would need to be public)