refactored macro object-funcs. takes map instead of named attributes
object-render works