Implements the changes suggested in #202. Do not accept until a consensus is reached.