Refactored into factory methods. Elections and voting systems split.