public function buildMethods()
    {
        $methods = "";
        
        foreach ($this->methods as $method) {
            $methods .= "\n" . $method->build();
        }
        
        $call = "";
        
        if (!array_key_exists('__call', $this->methods)) {
            // If __call is hit, the method is missing. If we want to ignore missing methods, just
            // discard any exception from receive.
            $call = "public function __call(\$method, \$args) {
                try {
                    return \$this->__receive(\$method, \$args);
                } catch (\\Exception \$e) {
                    if (!\$this->__ignoreMissing) {
                        throw \$e;
                    }
                }
            }";
        }

        return $call . $methods;
    }