splited functions into modules