How voting software works