added state machine
merged
implemented proposer
merged, implemented proposer