added very very important todo!
have written some lookahead, but will write further