create component for votes and async upvote