improved up and down vote functionality