add on_read callback
update readme