adding base.h; useful macros