Merged changes. Added async support. Updated notification code.