separate thread handling