updated zcall to do steps with more explicit instructions