Use keywords for custom reader id instead of enum
Support multiple function arities