Increased efficiency by removing unnecessary deepcopying.
Fixed a critical unit propagation bug - units weren't being discovered properly.
Added some methods mainly useful for debugging