restructure. add password hashing