Add typeable, data instance deriving