Turning an idea into a functional circuit board is a complex and time consuming process that can prove to be error-prone. The procedure of creating the schematics includes both the circuit design and the component selection. This is a lengthy process in itself. Then the board has to be laid out in CAD. Once this is done the board design is sent out to board manufacturers who will take additional time to build the boards and then deliver them to the designer. After all these steps are complete, the testing can finally begin. During the test phase, issues are discovered requiring hardware or software changes. The complexity of the schematic design and the process itself increases the potential for these bugs.