implemented --gadget flag