initial add of all code so far