Below is a voting system that I have been tinkering with to replace FPTP in UK elections I call Primary Consensus Voting or PCV for short. I believe that this system would deal with many of the current problems of our current voting system and still be fairer that others being looked at to replace it.
The voter receives a list of candidates with 2 columns of boxes next to them. The first column is for the voters primary vote and the second column is for the voters secondary choice The first column must only have a single candidate marked and must also be filled in for the vote to be counted. The secondary column can have as many candidates marked as the voter wants with the exception of their primary vote which must be left blank.
When counting the votes at first the primary votes are counted and if a candidate reaches the 50% mark then they will win the election by default and the secondary votes are not counted.
If the candidates do not reach 50% then the worst performers secondary votes are added to each of the remaining candidates if at that point there is a candidate that reaches the 50% mark then they are declared the winner of the election. If no candidate reaches this mark then the process repeats until a candidate reaches 50% and is declared the winner.
This system will allow the candidate that is most acceptable to a majority of voters to be elected while taking into account the primary votes of the voters. By constantly adding votes from the bottom of the primary votes you achieve a majority candidate from the most disenfranchised voters. This system supports the voting of traditionally smaller parties/candidates by allowing the voter to negated the spoiler effect with there secondary vote.