added comments and compiler macros