Cleaned up voting logic