adding invalid callback and not calling emitters if invalid, still references #4