more pipeable algorithms