main needs a return function