added some enumerable extensions