How would you implement the Observer pattern, and what common pitfalls do you watch for when building features in Vergent LMS?