protected function delay($priority, callable $callback)
    {
        if (false === MathUtility::canBeInterpretedAsInteger($priority)) {
            throw new InvalidTypeException(
                'The priority must be an integer, ' . gettype($priority) . ' was given.',
                1457014282
            );
        }
        if (false === isset(static::$delayedCallbacks[$priority])) {
            static::$delayedCallbacks[$priority] = [];
        }

        static::$delayedCallbacks[$priority][] = $callback;
    }