deco function 구현