WIP: Attribute expressions

closes #659
This seems like the sort of thing that, if we go the class hierarchy route, we would handle through dispatch