different way of generating