adding generate methods