ifdef is safer here [ci skip]