Separate purification and argument cleaning