provides updating pattern