add __call requirement