moving type check to save event fires