Refactor the Elements collection to extend instead of delegate

Maybe it's just a personal preference, but if this collection is used a lot, maybe skipping the delegation can improve performance.