I think it is unnecessary to use synchronized here