the main function structure is there