* add immersion util and refact project