Massive update

This PR adds spec tests, documentation, and changes the way the user define manages passwords.