added user generator functionality