added `move` function to bnf
removed collapse from functions (incorrect bnf grammar)