1. parse the hjeader line which is: #CHROM POS 2. parse each variant row into an array without reading the whole file into mem all at once 3. read from a buffer 4. include tests