web: add event store, fix all those bugs