read timeout option and add read_until_re method