Issue #1: Improvements on the design, but still not optimized. Difficult to figure out what is going on during debug.