[RFC] Refactor normalize methods to new abstract class

This is untested code.