removed public in struct event, reduced lock scope