class SingleLeaderElectionService implements LeaderElectionService {

	@Override
	public void start(LeaderContender contender) throws Exception {
		checkNotNull(contender, "contender");

		synchronized (lock) {
			checkState(!shutdown, "service is shut down");
			checkState(proposedLeader == null, "service already started");

			// directly grant leadership to the given contender
			proposedLeader = contender;
			notificationExecutor.execute(new GrantLeadershipCall(contender, leaderId));
		}
	}

	public  SingleLeaderElectionService(Executor notificationsDispatcher, UUID leaderId);

}