First switch drafting

Maybe we should split this in submodules? At least for ports, I think
this would make coding easier and without any cascades of
std::vectors..