reworked interface and add code for single reads