change the signature to return the token