added join semantics, changed representation of process