add handle_read()