cmakeenv
heavy refactor