use runtime to preserve the original delegate

use runtime to preserve the original delegate