         return datasource.numberOfRows() - lastNumRows
     }
     
-    func tick(timer: NSTimer) {
+    func tick() {
         objc_sync_enter(self)
         if rowDelta() > 0 {
             var indexPaths = [NSIndexPath]()

        if datasource.isActionRow(indexPath) {
            let cell = tableView.dequeueReusableCellWithIdentifier("ActionCell") as! ActionCell
            cell.reloadAction = { [weak self] in
                self?.tableView.insertRowsAtIndexPaths(
                    [NSIndexPath(forRow: indexPath.row.successor(), inSection: 0)],
                    withRowAnimation: .Automatic
                )
                self?.tableView.reloadRowsAtIndexPaths(
                    [NSIndexPath(forRow: indexPath.row, inSection: 0)],
                    withRowAnimation: .None)

    func resetGame() {
        game = Game(title: "Camira - The Game", subtitle: "An sample adventure", initialPlace: Place.start(), player: Player.main())
        datasource = Datasource(game: game)
        timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "tick", userInfo: nil, repeats: true)
    }
    
    override func viewDidLoad() {
