added macros to allow refactoring without caring about strings