base before multithreading