improved cmake