Improved macro spec, use decorators and keep macro class clean of
attributes, add base model list macro class