still require some work on searching logics.