Move messages back to `core`
Move data serialization from callback to data wrapper