Observer collection refactoring