change the XLogReader to interface