read operation implemented