added error propogation and estimation