rearrange conditional compilation