squashed big commits.
Merge branch 'reset_password' into base_addition