Better serialization with proper recursion handling.
HMTL rendering events and control handling.
Revamped observer to be thread-safe and serializable.