implement more detailed signature verification