added gadget() and made __getattr__ return an object that is both callable and can be used as an argument