add environment and lookup code
support primitives *