synchronize should be a private method