Refactored RuPPAT entry point