both signature for main function