just switch on whether define is .. defined, no need for separate public suite