added random password generation