adding some ifdefs