added simulation experiment function