private function runIfNotCached($variableName, callable $function)
    {
        if (null === $this->{$variableName}) {
            // Only assign that don't returns
            if (null !== $result = $function()) {
                $this->{$variableName} = $result;
            }
        }
    }