New port api

Switch components to use the new port API.
I did my best to provide useful information on ports, but some components are still pretty confusing to me, so descriptions are lacking.