private function assertCallback(callable $callback, string $message = 'failed callback assertion'): Validator
    {
        $variablesFailingAssertion = [];

        foreach ($this->variables as $variableName) {

            $variableValue = $this->loader->getVariable($variableName);

            if (call_user_func($callback, $variableValue) === false) {
                $variablesFailingAssertion[] = $variableName." $message";
            }
        }

        if (count($variablesFailingAssertion) > 0) {

            throw new RuntimeException(sprintf(
                'One or more environment variables failed validation: %s',
                implode(', ', $variablesFailingAssertion)
            ));
        }

        return $this;
    }