reader task implemented