       no: []
 
   start: () =>
+    if Vote.current
+      throw "A vote is already in progress, hold up"
+
     fn = =>
       do @maybeFinish
       return if @finished
       @expired = true
       @finish()
     @timeout = setTimeout fn, @length
-    # Note myself if I haven't been yet
-    Vote.current ?= this
+
+    @msg.send "New Vote: #{@description}"
+    Vote.current = this
 
   yes: (who) =>
     @_vote 'yes', who

## Dat model
class Vote
  @current = null

  length: 30 * 1000


  finish: () =>
    # Close the gate, and update the current vote
    @finished = true

    return true

  ## Public Voting API
  constructor: (@robot, @msg, @description, @vote_cb) ->
    @finished = false
    @expired = false
    @votes =
