Fixed AbstractElement, changed how observers are managed (each concrete Processor can use notify(Mediator) or notify(List<Mediator>))