mainFunction
MAINFUNC