attempts to remove some error propogation by rounding heaing to nearest degree each time