conditional compile