quick hack to trackData read function to optionally pass a buffer as parameter to read data into, rather than creating a temporary list