redo consense, refactor