add barebones for optimized phases (WIP//useless for now); will be useful while doing big transformation like lambda lifting