mod pImpl
mod callback
mod callback function type