classes with macro