added monte carlo approximation