shouldn't this use `static:: getTimePeriodParts()` instead of `self`?