I would factorize the check of compatibility between epochs in a separate private function