clean mess
init self written
finish parser