changed file reader to use yeild instead of returning a complete list