Javascript Design Pattern: observer