Switched storage to associative reference API.
Changed assoc ref wrappers to functions.
Move macro impl code into their own subclasses.