initial structure and basic code