data, such as by intimate data communication or control flow between those subprograms and other practical works are designed to make sure it remains free software (and charge for