Rewrite the core API for the numerology report to be object-based