working self-made enumerables except for inject