add ncurses ui and protobuf serialization