major code restructure and cleanup (incomplete), initial pci support (also incomplete)