protected function distribute($tmpDir)
    {
        // copy fonts
        foreach(glob($tmpDir . '/fonts/tao.*') as $font) {
            if(!copy($font, $this->taoDir . '/views/css/font/tao/' . basename($font))) {
                return array('error' => 'Failed to copy ' . $font);
            }
        };

        // copy icon scss
        foreach(glob($tmpDir . '/_tao-icon-*.scss') as $scss) {
            if(!copy($scss, $this->taoDir . '/views/scss/inc/fonts/' . basename($scss))) {
                return array('error' => 'Failed to copy ' . $scss);
            }
        };

        // copy ck editor styles
        if(!copy($tmpDir . '/_ck-icons.scss', $this->taoDir . '/views/js/lib/ckeditor/skins/tao/scss/inc/_ck-icons.scss')) {
            return array('error' => 'Failed to copy ' . $tmpDir . '/_ck-icons.scss');
        }

        // copy helper class
        if(!copy($tmpDir . '/class.Icon.php', $this->taoDir . '/helpers/class.Icon.php')) {
            return array('error' => 'Failed to copy ' . $tmpDir . '/class.Icon.php');
        }

        // copy selection to assets
        if(!copy($tmpDir . '/selection.json', $this->assetDir . '/selection.json')) {
            return array('error' => 'Failed to copy ' . $tmpDir . '/selection.json');
        }

        return true;
    }