improve cmake