ifdef guards around optional code