improve simulator