workaround for programIndex via preprocessor