fix signal name
Use stdlib's json to ensure receiving unicode.
Remove unneded signal parameter.
Add type checking for the backend.