implement more non-terminal functions
sooooo many non-terminal functions
implement more non-terminal functions