added hierarchy support