ongoing refactor to PIC. ;)