Observer works in some cases. More work is needed.
First two subtasks of Threads.