main is type IO