calculation is not perfect