new abstract thread functions