private static IEnumerable<object> ReadRows(IFrameReader frameReader, IColumnSpec[] columnSpecs, IDataMapperFactory mapperFactory)
        {
            Stream stream = frameReader.ReadOnlyStream;
            int rowCount = stream.ReadInt();
            for (int rowIdx = 0; rowIdx < rowCount; ++rowIdx)
            {
                IInstanceBuilder instanceBuilder = mapperFactory.CreateBuilder();
                foreach (ColumnSpec colSpec in columnSpecs)
                {
                    byte[] rawData = stream.ReadByteArray();
                    object data = null != rawData
                                          ? colSpec.Deserialize(rawData)
                                          : null;
                    instanceBuilder.Set(colSpec, data);
                }

                yield return instanceBuilder.Build();
            }
        }