needs sigle thread to build properly