refactor logic to boolean variables in self.leap_year?