Improved some assertions for readability.
Removed unnecessary repository.
Move the Role Repository logic into a Factory and Gateway.
and Utilize the functionality in Account Repository.

-Added encryption for password.