Refactor the mono reader and try to fix the PF bug