fix silent option
use invoke