initial commit with much of the basic reader functionality