We introduce a two-stage, multiple-round voting procedure where the thresholds needed for approval require a qualified majority and vary with the proposal on the table. We apply such a procedure to instances of public-good provision where the citizens' valuations can take two values and are private. We show that the procedure elicits and aggregates the information about the valuations and implements the utilitarian optimal public good level. This level is chosen after all potential socially optimal policies have been considered. We also develop a compound procedure to ensure utilitarian optimality when there are arbitrarily finitely many types of citizen.