make some macroses behave as functions
documentation
enable ctags