More generic simulator