add signature verify function