added break\continue
cleaned implementation: writing to a list of LIR commands instead of spitting out to console