Union working and tested.
Refactored IPF architecture to make it cleaner.