can do maximal tree too!