Never return an undefined response object from `sync`
Refactor a bit, tighten up event hooks in Board