finished generate methods