add compile guard