updated SourceReader with ArrayList object for line-by-line access to source