Simplified macros, added implicit because and result