Improved performance by minimising size of synchronized actions and using Collections.synchronizedList