#2: silent option added