improve event design