I never really understood why a user of the EL API has to provide all these impls :(