stupid ifdefs