implemented user generator