we don't want to commit to optimize calling simulate