Solo generation function