public function scale($filename, $id) {
        $templates = instance(new Garp_Image_Scaler)->getTemplateNames();

        // Divide templates into sync ones and async ones
        $syncTemplates = array_intersect($templates, $this->_synchronouslyScaledTemplates);
        $asyncTemplates = array_diff($templates, $this->_synchronouslyScaledTemplates);

        foreach ($syncTemplates as $template) {
            $this->_scaleSync($filename, $id, $template);
        }

        $this->_scaleAsync($filename, $id);
    }