parser() rewriten, but it is not finnished yet