public function freeze() {
        if (!$this->configured) {
            foreach ($this->mappings['paths'] as $mapping) {
                $mapping->freeze();             // no need to freeze named mappings as all have a path property
            }
            foreach ($this->tiles as $i => $tile) {
                if ($tile->isAbstract()) unset($this->tiles[$i]);
                else                     $tile->freeze();
            }
            $this->configured = true;
        }
        return $this;
    }