switched to pre-processor