implemented distribution approximation