rewrote enumerable methods