add new modules
major changes, used event emiiter and nimble to serialize asynchronous events
minor changes