added password hash with validation and test