functions 분리