         for index in 0...step {
             if index == step {
                 if place == nil {
-                    place = placeAtStep(step-1)
-                }
+                    place = placeAtStep(step.predecessor())
+                }
+                print("place: \(place), step: \(step)")
                 return place
             }
             place = nextPlace(place)

    
    func cellForRowAtIndexPath (indexPath: NSIndexPath) -> UITableViewCell {
        print("indexPath.row: \(indexPath.row) * isPlace: \(isPlace(indexPath.row))")
        if indexPath.row == 2 {
            
        }
        if let isPlace = isPlace(indexPath.row) {
            if isPlace {
                let cell = tableView.dequeueReusableCellWithIdentifier("PlaceCell", forIndexPath: indexPath) 

        }
        if thing is Place {
            if let actions = (thing as! Place).actions {
                return _isPlace(step, currentStep: currentStep.successor(), thing: actions)
            } else {
                return _isPlace(step, currentStep: currentStep.successor(), thing: nextPlace((thing as! Place)))
            }
        }
        if let actions = thing as? [Action] {
            for index in 0...actions.count {
                let action = actions[index]
                if action.selected {
                    return _isPlace(step, currentStep: currentStep.successor(), thing: action.nextPlace)
                }
            }
        }
        return _isPlace(step, currentStep: currentStep.successor(), thing: thing)
    }
}
