Replaced the Observer custom type with a class. Removed the CallStack custom type.
Added tests for async functionality.