     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
         let cell = tableView.dequeueReusableCellWithIdentifier("ChecklistItem", forIndexPath: indexPath)
         
+        let item = items[indexPath.row]
         let label = cell.viewWithTag(1000) as! UILabel
-        
-        if indexPath.row == 0 {
-            label.text = row0item.text
-        } else if indexPath.row == 1 {
-            label.text = row1item.text
-        } else if indexPath.row == 2 {
-            label.text = row2item.text
-        } else if indexPath.row == 3 {
-            label.text = row3item.text
-        } else if indexPath.row == 4 {
-            label.text = row4item.text
-        }
+        label.text = item.text
         
         configureCheckmarkForCell(cell, indexPath: indexPath)
         

    // MARK: - table view delegate
    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        if let cell = tableView.cellForRowAtIndexPath(indexPath) {
            if indexPath.row == 0 {
                row0item.checked = !row0item.checked
            } else if indexPath.row == 1 {
                row1item.checked = !row1item.checked
            } else if indexPath.row == 2 {
                row2item.checked = !row2item.checked
            } else if indexPath.row == 3 {
                row3item.checked = !row3item.checked
            } else if indexPath.row == 4 {
                row4item.checked = !row4item.checked
            }
            configureCheckmarkForCell(cell, indexPath: indexPath)
        }
            

    
    // MARK: - helper
    func configureCheckmarkForCell(cell: UITableViewCell, indexPath: NSIndexPath) {
        let item = items[indexPath.row]
        
        if item.checked {
            cell.accessoryType = .Checkmark
        } else {
            cell.accessoryType = .None
