add generateTower method