add dependencies
perfect operation transform