needs calibration and eliminate some unused things.