Does this need to be synchronized? or protected from multiple threads calling it and performing multiple registrations?