added signature verification and user validation