fiddled with ifdefs