I/O port framework. might even work at this stage.