implemented enumerable woohoo