Added a more abstract definition of tmp