Push while debugging
Added commments, and improved the robustness of the system.  It still doesn't perform correctly though in all tests