refactor it? calculation
delay