Added additional model abstraction to allow a progress button's task to be exchanged during runtime.