events sent after updates rather than before
changed empty string to null in event factory.  More consistent now