notnull, use thashmap, simlpify — add getRoot