incorporate different password generating modes