Custom data classes for materialisation / dematerialisation