grio:
I am having trouble finding guidance on google to do the following. Any help would be great.
On Off switch both for power and program restart
I have seen this question before, usually phrased as "how can I reset my sketch into its starting state".
The answer is that you can't. What you need to do is write a sketch where the "reset back to my stating state" is part of its functionality. A lump of code, somewhere, which under certain conditions (eg: a button press) zeros out whatever variables need to be zeroed out.