added exception macro
merged with development