redesign the names used for #define, use "__" to replaoe "_"