refactoring for micro-optimizations; make custom property finding a preprocess step