Split/add and fixes

I didn't switch the order of the conditionals.  But I rearranged the code (while keeping the original logic) so that the `self._fields[key.field_name]` is called only once in this method.  I did that since we now want to return the "decorated" version of it.