uses args and kwargs for default __call__ method