everything implemented but the GetEnumerable