flesh out enumerable and methods, still incomplete