Decomposition of functionality: a correctness-preserving LOTOS transformation