Moved 'low-level' read types and function to separate file. Also made basic types io.ReaderFrom's