add support for macros & context data

+ expressions refactoring