add some comments modify vote function