restructure cmake