removed getElements, use getIterator instead
introduces the Event notification interface powered by Symfony
introduces plugin system and cache feature