sepreate functions into different part