fine calculation working