refarction algorithm