schematic is semi-finished. Needs some cleanup