public function from(Contract $contract, string $string, callable $callback = null): string
    {
        $string = ucwords(
            $contract->recipe(
                $string,
                'upperCaseFirst',
                function ($string) use ($contract) {

                    if ($contract instanceof Camel) {
                        return $string;
                    }

                    return strtolower($string);
                }
            )
        );

        return $this->callback($string, $callback);
    }