loop support, somewhat buggy
parse more and fix idents
tabs -> spaces