simple reader implementation