base functionality with vote counter