use delayedCall instead of setTimeout