yet another raft implmenetation