some error handling in passwords and some thing else idk