Refactor
Observer -> Subscriber
Subject -> Publisher
Observer::process -> Subscriber::notify
Subject::notify -> Publisher::publish