functional and event updates