added random password functionality