a working version of call