adding read interface + tests