Refactor Components to use LocalChannel

This makes components much more modular.