Actually fairly working code, suprisingly, it has three router options, one which has a functioning up and down vote