Initial refactoring to the new structure
Add initial multicast discovery code