using() now accepts variable length of inputs, and last argument must be a callable