the month-end processing loop in the main program calls `ProcessMonthEnd` on every account without knowing the specific type. The correct behavior is selected at runtime through dynamic dispatch.