move lots of things out of Cmakefile.lists use sub cmake file module