enumberable to great effect and completely changed api for downloading