Add some macros to make the code modifiable to some extent