Custom Exceptions for better feedback on failed logins
slight rework and code comments
update README