* change source tree to improve portability
* add asynchronous event delivery feature
  - like unix signal, but more stable.