move the tests and code to separate namespaces
add token types