no longer using preprocessor. it only saved 10 bytes