save ports to metadata, shouldComponentUpdate speedups #2