Unified program update