extraction algorithms