Add search + some interface refactor.