add parallel substring extraction