seperated read.h (public interface) and read_t.h (types)