use lexfn/sem-impl directly
add TODO
namespaces