add async
add Event.parse test
implement Event.parse