Add vote

Squashed the vote class commits into one and moved it to a topic branch for better githubbiness.