add :on_reload option