Added reading + new mid-level and low-level interface