adds __invoke()