added numeric integration