body/pre/post functions, fixed a few erroes, and gave operational semantics for join