Separate definition and implementation.