moved constant function evaluation deeper into the abstraction hierarchy