add programDuration virtual property