refactor yaml reader to make the code cleaner. CsvDataReader and SqlTableReader are broken in this commit