implement pull parser