Citations

Full opinion text

TABLE OF CONTENTS I. INTRODUCTION.........................................................549 II. FACTS AND BACKGROUND.............................................549 A. Parties................................................................549 B. Computers, Computer Programs, and Operating Systems................549 C. Operating System Compatability Components (Interfaces)................551 D. The Computer Programs...............................................552 1. CA-SCHEDULER.................................................552 2. ADAPTER........................................................552 3. ZEKE.............................................................552 4. OSCAR...........................................................552 E. Dramatis Personae ....................................................553 1. James P. Williams.................................................553 2. Claude F. Arney, III ..............................................553 F. Development of OSCAR 3.4............................................553 G. Rewrite of OSCAR 3.4 into OSCAR 3.5................................554 H. Evaluation of Altai’s rewrite of OSCAR................................554 III. DISCUSSION.............................................................555 A. Copyright Infringement................................................555 1. Ownership of a Valid Copyright....................................555 2. Copying of the Copyrighted Work..................................557 a. Access.........................................................558 b. Substantial Similarity...........................................558 i. Similarities between ADAPTER and OSCAR 3.4..............560 ii. Similarities between ADAPTER and OSCAR 3.5..............561 B. Misappropriation of Trade Secrets......................................562 1. Preemption........................................................563 a. Law of the Case?..............................................563 b. Preemption Analysis As Applied to the Facts....................563 2. Choice of Law ....................................................566 a. Which State’s Principles?.......................................566 b. Which State’s Substantive Law? ................................566 c. Is the Texas Statute of Limitations a Bar?......................566 C. Damages..............................................................567 1. CA’s View of Damages............................................567 2. Altai’s View of Damages..........................................568 3. Defects in CA’s View..............................................568 a. CA’s Actual Damages..........................................568 b. Altai’s Profits from OSCAR 3.4.................................570 c. Altai’s Enhanced Good Will.....................................570 4. Defects in Altai’s View............................................570 a. CA’s Actual Damages..........................................570 b. Altai’s Profits from OSCAR 3.4.................................571 c. Altai’s Enhanced Good Will.....................................571 5. Evaluation and Conclusion as to Damages..........................571 6. Interest...........................................................572 D. Housekeeping Matters.................................................572 1. Punitive Damages.................................................572 2. Attorney’s Fees...................................................572 a. OSCAR 3.4 ....................................................572 b. OSCAR 3.5 ....................................................573 3. Fees of Dr. Davis.................................................573 4. Costs.............................................................573 5. The French Motion................................................573 6. Exhibits...........................................................573 IV. CONCLUSION 573 MEMORANDUM AND ORDER GEORGE C. PRATT, Circuit Judge (sitting by designation): I. INTRODUCTION Plaintiff Computer Associates International, Inc. (“CA”) brought this action in August 1988 alleging that defendant Altai, Inc. (“Altai”) had copied substantial portions of CA’s SCHEDULER program into Altai’s own computer software programs known as ZEKE, ZACK, and ZEBB. CA claims that Altai infringed CA’s copyright in CA-SCHEDULER; in addition, CA claims that Altai misappropriated CA’s trade secrets by incorporating elements of the CA-SCHEDULER program into ZEKE, ZACK, and ZEBB. The focal point of CA’s claims of both copyright infringement and trade secret misappropriation is a discrete portion of Altai’s programs called OSCAR, which CA contends was copied from a portion of its CA-SCHEDULER program known as ADAPTER. After most of the pretrial proceedings had been completed, this case was assigned to the undersigned for trial without a jury. Because of the extensive technical evidence and expert testimony anticipated from both sides, the court appointed Dr. Randall Davis of the Massachusetts Institute of Technology as its own expert, pursuant to Fed.R.Evid. 706. Trial commenced on March 28, 1990, and concluded on April 6, 1990, following which counsel submitted additional memoranda for the court’s consideration. This memorandum and order disposing of this action includes the court’s findings of fact and conclusions of law as required by Fed.R.Civ.P. 52(a). II. FACTS AND BACKGROUND A. The Parties Plaintiff CA is incorporated under the laws of the State of Delaware, and has its principal place of business at 711 Stewart Avenue, Garden City, New York 11530. Defendant Altai is incorporated under the laws of the State of Texas and has its principal place of business at 624 Six Flags Drive, Arlington, Texas 76011. Both CA and Altai design, develop, market, and support various computer software programs. B. Computers, Computer Programs, and Operating Systems To understand what ADAPTER and OSCAR do, it is necessary to focus upon how computers work and consider some basic computer terminology. Computers are machines which can do certain things based upon instructions. A computer is traditionally viewed as composed of three fundamental components: a CPU (central processing unit), some memory, and some means of getting input and displaying output. The CPU is where all the actual computing is done. Memory is used to hold the program that is being run, as well as to provide a place for the program to store the intermediate results of a calculation. A computer program, as defined in 17 U.S.C. § 101, “is a set of statements or instructions to be used directly or indirectly in a computer to bring about a certain result.” Computer programs can be classified as systems programs and applications programs. Systems programs are concerned with the operation or use of the computer. Applications programs perform a task or set of tasks for the computer user, such as payroll accounting, data base operation, or word processing. Programs that run on the same computer and operating system can be divided into three types. The first, resident programs, reside in the computer’s memory where they run continuously. CA-SCHEDULER and Altai’s ZEKE are resident programs. A second type, batch programs, are scheduled, started, and run to completion of a particular job. The third group, server programs, are resident programs used by other programs to perform a service. ADAPTER and OSCAR are both classified as server programs. One particular type of system software is called operating system software. Operating systems are the programs that manage the resources of the computer and allocate those resources to other programs that need them. For example, operating system software might perform, among others, these functions: —channeling information entered at a keyboard to the proper application program; —sending information from an application program to a display screen; —providing blocks of memory to an application program that requires them; and —allocating processing time among several application programs running on the computer at the same time. Operating system software interacts with whatever other programs are being used or “executed” by the computer, providing computer resources such as processors, memory, disk space, printers, tape drives, etc. for the other programs that need them through what are often referred to as “system calls”. For this interaction to occur properly, the other programs must be compatible with the operating system software in use on the computer, i.e., they must be able to exchange information precisely and accurately with the operating system to interact with those computer resources. The computers involved in this case are IBM’s System 370 family of computers. These are mainframe computers which come in varying sizes. IBM designed and developed three different operating systems for use with its System 370 computers: DOS/VSE for use with the small-to-medium-size computers; MVS for larger computers; and CMS for interactive computers. DOS/VSE and MVS are especially popular operating systems with businesses that run mostly batch jobs (which are sequences of application programs requiring no active user input during job execution), although both systems can support interactive applications in which users continuously interact with the computer. Businesses that run interactive applications or do a large amount of application development, which is also highly interactive, often choose the CMS operating system, which is the most efficient system for a highly interactive environment. Although the mix of batch and interactive jobs is a major influence in a data center’s choice of operating system, all data centers run a large number of batch jobs each day. Job scheduling programs are particularly useful in managing the summary of batch jobs. Because an operating system manages the operation of a computer, a computer program must “fit”, or “speak in the same language as”, the operating system used by the computer on which the program is run. In general, a program written for one operating system, e.g., DOS/VSE, will not, without modification, run under another operating system such as MVS. It is commercially desirable for software development companies like CA and Altai to market the same system or application program in versions that can run in connection with different operating systems. That way, users can take advantage of the services which the system or application program provides and the methods for its use, regardless of what operating system they are currently using. Users can switch operating systems (for example, users may switch from VSE to MVS as their computer installations grow), or even use multiple operating systems, yet continue to use a program that appears to them to be functionally identical. Using application or system programs that can function on several different operating systems can save a data center time and money that would otherwise be spent acquiring new programs similar in functionality to the old ones, adapting the system to run them, and training users to operate them. Various approaches to software development address this operating-system problem. One common technique is to develop different versions of the program that are identical in most respects, but have system calls written to function under the different operating systems. Thus, for example, a software company might develop three versions of an application or system program, one each for DOS/VSE, MVS, and CMS. Each version might also be rewritten somewhat to take advantage of features offered in one operating system but not another. A deficiency inherent in this approach is that it requires a software company to develop and maintain many different versions of the same program. Changing the program or adding new features requires modifications to all versions. When problems are found and fixed in one version, the other versions must be examined to determine if the same problem must be fixed in each of them as well. Software developers must insure that any changes made to a program are sensitive to the particular operating system under which the program runs. Marketing multiple versions of each product also increases the work required for development and maintenance. Additional programming resources are needed to develop features and fix problems to all versions in parallel. In addition, the software development staffs must coordinate carefully to make the versions as similar to each other as possible from the users’ point of view. This is a cumbersome way to develop and maintain products that run on multiple operating systems. C. Operating System Compatability Components (Interfaces) A more efficient approach to the problem of developing an application or system program that will function on different operating systems is to divide the program into two components: —a first component that contains only the task-specific portions of the program, independent of all operating system issues, and —a second component that contains all the interconnections between the first component and the operating system. In a program constructed in this way, whenever the first, task-specific, component needs to ask the operating system for some resource through a “system call”, it calls the second component instead of calling the operating system directly. The second component serves as an “interface” or “compatibility component” between the task-specific portion of the program and the operating system. It receives the request from the first component and translates it into the appropriate system call that will be recognized by whatever operating system is installed on the computer, e.g., DOS/YSE, MVS, or CMS. Since the first, task-specific, component calls the adapter component rather than the operating system, the first component need not be customized to use any specific operating system. The second, interface, component insures that all the system calls are performed properly for the particular operating system in use. Once a version of the interface component has been created for each operating system using this approach, the task-specific component of each program only has to be written once. This has two desirable effects. First, to adapt a program to a new version of an existing operating system or an entirely new operating system, the developer need only modify the interface component; no changes need to be made to the task-specific component, which now has no operating-system-specific parts. Second, revisions to the task-specific component of the program to correct problems or add features will not affect the program’s ability to run under all operating systems, as long as the changes that request operating system services use the interface component. This method is an efficient and effective way to develop and maintain an application or system program that runs in many operating systems. Since the interface component is invisible to the end user, the end user need not even be aware that operating system compatibility is an issue. Therefore, the end user can switch operating systems and still use a given application or system program without apparent differences. It may be necessary to acquire and install a different version of the application program, but once the different version is installed, the end user will not notice the difference. D. The Computer Programs of This Case 1. CA-SCHEDULER CA-SCHEDULER is a job scheduling program for IBM mainframe computers. As one of a group of CA’s data center automation products, CA-SCHEDULER’s functions are to create a schedule that specifies when the computer should run various tasks, and to control the computer as it progresses through that schedule. CA began development of CA-SCHEDULER in mid-1981, and first installed it at a customer location in August 1982. This version of CA-SCHEDULER included ADAPTER, as did all subsequent versions of CA-SCHEDULER. 2. ADAPTER Part of CA-SCHEDULER is an operating system compatibility component called ADAPTER, which connects CA-SCHEDULER with the three different operating systems used on IBM mainframe computers: DOS/VSE, MVS and VM/CMS. The ADAPTER component enables CA-SCHEDULER to be run on any of the IBM operating systems. Without the specialized technology provided by ADAPTER, CA would have had to develop, support, and market three separate versions of each of its products, such as CA-SCHEDULER, so that the product could be used on a customer’s computer regardless of which of the three IBM operating systems it used. ADAPTER is not a separate CA product; it is not marketed as such, and it has no capability of acting as an independent product. Rather, it is a component part of CA-SCHEDULER, as it is of several other CA products. CA began work on ADAPTER in 1979, and has continued to enhance it even up to the present. When ADAPTER is used as one component of a CA program, the other component, which contains the task-specific code, is designed to mate with ADAPTER rather than directly with the computer’s operating system. This approach followed a concept — operating system independence — that had been successfully used for several years prior to the development of ADAPTER. ADAPTER was designed and written in 1979 for use with a group of CA’s programs called the DYNAM line. CA included a separate copyright notice on ADAPTER with 1979 as the date of first publication. Since 1979, there have been several revisions and changes to ADAPTER code. CA never registered ADAPTER in the copyright office as a separate computer program. 3. ZEKE James P. Williams of Altai began development of ZEKE in July, 1981, and first installed it at a customer location in June 1982. This original version of ZEKE was available for use only on the VSE operating system, and made all its own service calls directly to the operating system. One of its principal competitors was CA-SCHEDULER, but Williams did not know that SCHEDULER included ADAPTER, nor did he know specifically what CA products used ADAPTER. 4. OSCAR OSCAR is Altai’s operating-system compatibility component. It was first developed in 1984 in a VSE version for use with Altai’s ZEKE program. The first version, called OSCAR 3.4, was developed by Claude F. Arney III, who copied approximately 30% of OSCAR’s source code from the source code of ADAPTER, which he had taken from CA when he left CA to go to work for Altai as a programmer. Like CA's ADAPTER, Altai’s OSCAR is not a separate product; it is not marketed as such, and it has no capability of acting as an independent product. Version 3.4 was first used in the ZEKE program, and later in Altai’s ZACK and ZEBB programs. After this action was commenced against Altai, OSCAR was rewritten by different Altai programmers as version 3.5, and was substituted for version 3.4 as a component in the Altai programs. Altai concedes that Arney copied from CA’s ADAPTER, but claims that he did it without the knowledge of anyone at Altai. Altai further claims that once it was alerted to and had confirmed the illegal copying, right after this action was begun, it rewrote the OSCAR program to eliminate any of the claimed infringements. Whether Altai was successful in its attempted “cleanup” of OSCAR is one of the principal issues in this lawsuit. E. Dramatis Personae 1. James P. Williams In 1977, James P. Williams was employed by CA, where he became a product manager. He left CA in August 1980 when he went to work for Software Design, Inc., a predecessor to Altai. Currently, he is the President of Altai and has held that position since October 31, 1988. While at CA he was not involved with the actual development of CA’s products, and Williams had no responsibilities with regard to ADAPTER. Although he was aware of ADAPTER, he never actually saw the ADAPTER code. In late 1983 Altai determined, based on customer interest, that it should write ZEKE/VSE so that it could be used on the MVS operating system. Williams, who had developed Altai’s VSE version of ZEKE, was the sole programmer at Altai and felt that Altai needed an additional programmer to write the MVS version. At the time, Williams knew about CA’s SCHEDULER, which had been developed after Williams left CA, but he was not aware that SCHEDULER used ADAPTER. Williams approached Arney, who had been a long-standing friend and co-worker of Williams even before their days at CA, and invited him to come to work for Altai. Arney was then, and since 1978 had been, an employee of CA, where he had worked with and helped to develop the VSE version of the ADAPTER component. 2. Claude F. Arney, III Arney had been employed by CA as a programmer for approximately five years before he moved to Altai. During that period, Arney did development work on CA’s DYNAM/D, DYNAM/T, DY-NAM/F1, and ADAPTER programs. In this role, he rewrote or enhanced many portions of ADAPTER/VSE. Arney had no responsibilities, however, for ADAPTER/MVS. For his work, CA permitted him to take home a paper copy of the source code of ADAPTER and anything else he needed to assist him. He did not recall being denied access to any materials by the company. Arney was approached by Williams in December 1983 about working for Altai. Williams told him that his first project would be to develop an MVS version of ZEKE. Arney had no direct experience with MVS, but he was an accomplished programmer. When he left CA in January 1984, Arney took with him copies of the source code for both the VSE and MVS versions of ADAPTER, even though he recognized that this was contrary to the agreements he had signed prohibiting employees from retaining such copies. F. Development of OSCAR 3.4 When he began work at Altai, Arney discussed with Williams different possible approaches for making ZEKE work with the MVS operating system. Williams, who had developed ZEKE for VSE, estimated that to modify it to run with MVS would require changing approximately 30% of its code. The other 70% worked independently of the operating system. Williams had not considered at that point using a common system interface either for ZEKE or for any other Altai products. Arney argued, however, in favor of the long-term advantages of the common system interface. After discussing the possibilities, they decided to use the method of operating system independence, which would place all the system calls in a single program that they ultimately called OSCAR. After this decision was made, Arney began to write a VSE version of OSCAR. A VSE version was written first, because this allowed Altai to take advantage of its already-working ZEKE/VSE program. In other words, it could be assumed that any difficulties in running ZEKE with OSCAR on VSE systems could be attributable to problems in OSCAR, not in ZEKE. No one at Altai, other than Arney, knew that Arney had the ADAPTER code, or that he had referred to it when he was writing OSCAR/VSE, a project that took him three months, or when he was writing OSCAR/MVS, which took him an additional month. Only when this lawsuit was commenced did Altai learn that Arney had copied some 30% of the OSCAR code from CA’s ADAPTER. From 1985 to August 1988, Altai used OSCAR 3.4 in its ZEKE, ZACK, AND ZEBB products, unaware of Arney’s copying. In late July 1988 CA learned for the first time that Altai may have copied its ADAPTER program. It investigated to confirm the suspicion and then registered for the first time a copyright on versions 2.1 and 7.0 of its CA-SCHEDULER program. Both 2.1 and 7.0 were registered as “derivative works”. Having registered the two versions of CA-SCHEDULER, CA commenced this action. CA alleged that by copying ADAPTER into the ZEKE, ZACK, and ZEBB programs, Altai has both infringed CA’s copyright and misappropriated trade secrets. G. Rewrite of OSCAR 34 into OSCAR 3.5 Upon receiving the complaint, Altai learned for the first time of the possible copying of ADAPTER code into OSCAR. Williams met immediately with Arney to investigate CA’s allegations. Arney admitted then that he had copied some of the ADAPTER code. Williams set about immediately to determine the extent of the damage, and he reviewed with Arney exactly which portions of OSCAR had been copied. In doing so, Williams did not look at the ADAPTER code, but Arney consulted it in identifying which modules of the code had been copied and which had been separately developed either from ZEKE or independently. At this point Williams consulted counsel about how to go about rewriting the OSCAR program so as to cure the harm done by Arney’s improper copying. The first step was to exclude Arney entirely from the rewriting process. The original ADAPTER code was locked up. Williams then assigned to Altai’s eight programmers various segments of the program that had to be rewritten. Williams wrote the parameter lists and gave them to the programmers. In doing so he worked primarily from ZEKE, not from Arney’s version of OSCAR. The programmers were denied access to OSCAR 3.4, and were forbidden to talk with Arney during the rewrite process. Williams’ goal in following this procedure was to salvage from OSCAR 3.4 the portions that Altai legitimately could use, and to eliminate from it those portions, ultimately determined to be about 30%, that had been copied by Arney from ADAPTER. All the programmers employed by Altai (with the exception of Arney) were used in the rewriting process. None of them had been involved in developing or enhancing OSCAR. The process of rewriting involved first determining what operating system services were needed by ZEKE; this list was formulated by reference to the version of ZEKE marketed before OSCAR was developed. Williams provided a brief description of each service to a programmer through the parameter lists, and told the programmer to write the appropriate code for obtaining that service from the operating system. After the new code was written, the revised OSCAR was tested and debugged. The entire process took approximately six work-months of effort, and was completed by mid-November 1988, thus producing OSCAR 3.5. Beginning in November 1989, OSCAR 3.5 was shipped to all new customers. It was also shipped by Altai, as a “free upgrade”, to all customers who had OSCAR 3.4. Delivery of OSCAR 3.5 to all customers, new and existing, was completed by July 31, 1989. H. Evaluation of Altai’s Rewrite of OSCAR If CA’s claim of misappropriation of trade secrets did not fail on preemption grounds, it would be necessary to examine in some detail the conflicting claims and evidence relating to the process by which Altai rewrote OSCAR and ultimately produced version 3.5. Since CA’s only viable claim is for copyright infringement (see discussion below about preemption of trade secrets misappropriation claim), our attention must be directed not so much to the rewriting process, itself, but to the result of the rewrite. We must determine, in short, whether Altai’s OSCAR 3.5 infringes CA’s ADAPTER. We make that determination as part of the discussion that follows. Additional facts are included where pertinent to the discussion. III. DISCUSSION CA has presented two causes of action: copyright infringement and misappropriation of trade secrets. A. Copyright Infringement There are two elements of a copyright infringement claim: ownership of a valid copyright, and copying of the plaintiff’s copyrighted work by the defendant. Novelty Textile Mills, Inc. v. Joan Fabrics Corp., 558 F.2d 1090, 1092 (2d Cir.1977); see also Reyher v. Children’s Television Workshop, 533 F.2d 87, 90 (2d Cir.), cert. denied, 429 U.S. 980, 97 S.Ct. 492, 50 L.Ed.2d 588 (1976); 3 Nimmer On Copyright § 13.01, at 13-4 (1991). On both elements the plaintiff carries the burden of proof. 1. Ownership of a Valid Copyright Section 102 of title 17 of the U.S.Code provides in part: “Copyright protection subsists * * * in original works of authorship fixed in any tangible medium of expression, now known or later developed, from which they can be perceived, reproduced, or otherwise communicated, either directly or with the aid of a machine or device”. The owner of a copyright may register it with the copyright office “[a]t any time during the subsistence of copyright in any published or unpublished work”. However, “[s]uch registration is not a condition of copyright protection.” 17 U.S.C. § 408(a). The act further provides, in § 411(a), that “no action for infringement of the copyright in any work shall be instituted until registration of the copyright claim has been made in accordance with this title.” Registration has effects in addition to permitting an infringement action. One relates to plaintiff’s entitlement to attorney’s fees under § 412, as will be discussed later in this opinion. Another effect of a certificate registration is that, if timely obtained, it “constitute^] prima facie evidence of the validity of the copyright and of the facts stated in the certificate.” 17 U.S.C. § 410(c). One of those facts is ownership of the copyright. See Durham Industries Inc. v. Tomy Corp., 630 F.2d 905, 908 (2d Cir.1980); 3 Nimmer On Copyright § 13.-01, at 13-5 to 13-7. In this case there is no dispute that CA owns a valid copyright in the computer program CA-SCHEDULER 2.1, which contains ADAPTER as one of its components. Plaintiff’s exhibit 2 is the certificate of copyright registration for CA-SCHEDULER 2.1, having the effective date of August 19, 1988. By statute, that certificate is prima facie evidence of the facts stated therein. It establishes that CA is the author, and Altai does not contest this. The certificate also states, however, that the nature of the material in which copyright is claimed is “text of computer program”. It also states that CA SCHEDULER 2.1 is a “derivative work” whose “preexisting material” was CA-SCHEDULER 1.0. Finally, for our purposes, the certificate states that the material added to CA-SCHEDULER 1.0 “and in which copyright is claimed” is: “Computer program has been re-written with revised code and added new code.” Thus, as asserted in CA’s registration, which provides the basis for this lawsuit, the copyright is of a derivative work based upon a prior version of CA-SCHEDULER. The evidence shows that CA-SCHEDULER 1.0 was never registered. Most significantly, the evidence also shows that the ADAPTER component of version 2.1 was incorporated into version 2.1 from the preexisting version 1.0, and indeed was incorporated into CA-SCHEDULER 1.0 from one of CA’s DYNAM programs, none of which are shown to have been registered. Based on these facts, which are undisputed, Altai has argued, with some persuasiveness, that CA may not maintain this suit for copyright infringement of the ADAPTER code. Altai argues essentially that the registration, a precondition to maintenance of this infringement suit, was only of a derivative work and, that according to the statute, “[t]he copyright in a * * * derivative work extends only to the material contributed by the author of such work, as distinguished from the preexisting material employed in the work, and does not imply any exclusive right in the preexisting material.” 17 U.S.C. § 103(b). That subsection goes on, however, and provides that “[t]he copyright in such work is independent of, and does not affect or enlarge the scope, duration, ownership, or subsistence of, any copyright protection in the preexisting material.” If there were evidence that the ADAPTER code had been placed in the public domain, or was owned by someone other than CA, Altai’s argument that the derivative nature of the registration did not extend to the ADAPTER code would be compelling. However, there is no such evidence. On the contrary, the undisputed evidence establishes that ADAPTER was developed by CA originally for CA’s DY-NAM programs, even before CA-SCHEDULER was developed, and was then incorporated as a separate component into the SCHEDULER versions. In short, CA is the author of the ADAPTER program and its “copyright protection” subsists without regard to registration. See Rand McNally & Co. v. Fleet Management Systems, Inc., 591 F.Supp. 726, 733 n. 6 (N.D.Ill.1983); Williams Prods., Inc. v. Construction Gaskets, Inc., 206 U.S.P.Q. 622, 624-25 (E.D.Mich.1977) (1909 act); Rexnord, Inc. v. Modem Handling Systems, Inc., 379 F.Supp. 1190, 1198 (D.Del. 1974) (1909 act). Accord 2 Nimmer on Copyright § 7.16[B][2], at 7-164 to 7-165. Moreover, the court interprets the restriction on commencement of an infringement action contained in § 411(a) as not being a bar to CA’s claim in this case. Dr. Davis’s testimony convincingly established that a computer program such as CA-SCHEDULER 2.1, for which registration was obtained, is made up of a series or collection of sub-programs, many of which are made up of sub-sub-programs, and so on, down for several levels. As Dr. Davis pointed out, it would make no sense to permit the copyright of a computer program that is an operable entity, such as CA-SCHEDULER OR ZEKE, without including in the copyright protection all of the sub-programs and sub-sub-programs, etc., which are combined with other instructions in order to make up the copyrighted program. Of course, § 103(b) limits the extent of a copyright in a derivative work to “the material contributed by the author of such work”. Here the author is CA, and among the material contributed by CA to CA-SCHEDULER 2.1 was the ADAPTER code. Section 103(b) does contrast the “material contributed by the author” with “the preexisting material employed in the work”, and it provides that the copyright “does not imply any exclusive right in the preexisting material.” (emphasis added). It further provides that the copyright in a derivative work neither enlarges nor diminishes the “scope, duration, ownership, or subsistence of, any copyright protection in the preexisting material.” In short, CA had a subsisting copyright in the ADAPTER code even though ADAPTER was not itself separately registered. CA was the uncontested owner of the code. When CA registered its copyright in CA-SCHEDULER 2.1 as a derivative work, it was not required simultaneously to register separately every component part, such as ADAPTER, of that work. Otherwise complete copyright protection for a complicated program developed by the same author over a period of time would require dozens if not hundreds of registrations. Plaintiff’s exhibit 2, the certificate of copyright registration for CA-SCHEDULER 2.1, was sufficient compliance with the registration requirement of § 411(a) to permit CA to maintain this action against Altai for infringement of ADAPTER. Confronted at trial with Altai’s argument that CA’s registration of CA-SCHEDULER 2.1 had a more limited effect than we have just held, CA took what it described as a “belt and suspenders” approach and obtained from the copyright office supplemental certificates of copyright registration, see plaintiff’s exhibit 299, which purported to amend the original certificates to show that both CA-SCHEDULER 2.1 and CA-SCHEDULER 7.0 were original, not derivative works. CA sought the amended registrations while the trial was pending, and did so without informing either Altai or the court. The amended certificates were presented to the court with a proposed second amended complaint on the last day of the trial. A number of objections were raised both to the amendment of the complaint and to the admission of the amended certificates into evidence. The court reserved decision on those motions. In view of the ruling made with respect to plaintiff’s exhibit 2, the original certificate of copyright registration for CA-SCHEDULER 2.1 — that it was sufficient compliance with § 411(a) to permit maintenance of this action — there is little importance left for the amendment of the complaint and the admission into evidence of the supplemental certificate. For the record, however, CA’s motion to file a second amended complaint is granted, and the two supplemental certificates of registration, amending plaintiff’s exhibits 1 and 2, are admitted in evidence as plaintiff’s exhibit 299. No prejudice is inflicted on Altai by the amendment of the complaint, so leave to amend should be “freely given”. Foman v. Davis, 371 U.S. 178, 182, 83 S.Ct. 227, 230, 9 L.Ed.2d 222 (1962). See S.S. Silberblatt, Inc. v. East Harlem Pilot Block, 608 F.2d 28, 42 (2d Cir.1979); Fed.R.Civ.P. 15(a). This action was prepared and tried on the theory that Altai’s OSCAR infringed CA’s ADAPTER. CA’s “error” was technical in nature; it described version 2.1 as a derivative work. Calling it an original work at the time the original certificate was obtained would not have affected anyone’s rights with respect to the work. Correcting the error, even on the last day of the trial, had no direct effect on the evidence or arguments presented during the trial. Even on a technical level, despite the language of § 411(a) that “no action for infringement * * * shall be instituted” until the copyright claim is registered, an action need not be dismissed simply because the registration occurs after the filing of the complaint. See, e.g., Frankel v. Stein & Day, Inc., 470 F.Supp. 209, 212-13 n. 2 (S.D.N.Y.1979), affd, 646 F.2d 560 (2d Cir.1980); Schuchart & Assocs. v. Solo Serve Corp., No. SA-81-CA-5, 1983 WL 1147, at *9 (W.D.Tex. June 28, 1983) (Sessions, J.). A formalistic dismissal, followed by a re-registration and commencement of a new action, is unnecessary and would be wasteful. Where, as here, the three-year statute of limitations running from knowledge of infringement had not expired at the time the motion to amend was made, no substantive rights are affected by treating the supplemental registration as relating back to the date of the original registration. In sum, with respect to the first element of CA’s infringement claim, CA has established a subsisting copyright in ADAPTER which has been registered with the copyright office and, therefore, may maintain this suit for infringement. 2. Copying of the Copyrighted Work The second element of a claim for copyright infringement is that the plaintiff must prove copying of the copyrighted work by the defendant. In order to prove its work has been copied, generally a plaintiff must — absent the rare instance, such as with OSCAR 3.4, where there is direct evidence of copying — prove “access and substantial similarity between the works, and also show that his expression was ‘improperly appropriated,’ by proving that the similarities relate to copyrightable material.” Walker v. Time Life Films, Inc., 784 F.2d 44, 48 (2d Cir.), cert. denied, 476 U.S. 1159, 106 S.Ct. 2278, 90 L.Ed.2d 721 (1986) (quoting Hoehling v. Universal City Studios, Inc., 618 F.2d 972, 977 (2d Cir.), cert. denied, 449 U.S. 841, 101 S.Ct. 121, 66 L.Ed.2d 49 (1980). Unlike the situation with respect to OSCAR 3.4, on which infringement is conceded, there is no convincing direct evidence here that OSCAR 3.5 was copied from ADAPTER. Therefore, as to 3.5, we must consider both access and substantial similarity — the two factors that would allow the court to infer copying on the part of Altai. a. Access Access is not seriously disputed in this case. Under the prevailing definition, access is “the opportunity to view or to copy” the plaintiffs work. Sid & Marty Krofft Television Prods., Inc. v. McDonald’s Corp., 562 F.2d 1157, 1172 (9th Cir.1977) (citing Arrow Novelty Co. v. Eneo National Corp., 393 F.Supp. 157, 160 (S.D.N.Y.), aff'd, 515 F.2d 504 (2d Cir. 1975)); 3 Nimmer on Coyyright § 13.-02[A], at 13-10. Here, Arney took from CA a copy of the source code for ADAPTER. Since Arney personally developed OSCAR 3.4 for Altai, and since Arney admits having used substantial portions of the ADAPTER code in the original version of OSCAR, access, at least with respect to version 3.4 of OSCAR, is established. With respect to version 3.5, the rewritten version of OSCAR, an argument could be made that Altai did not have access because of the precautions attempted by Altai when it undertook to eliminate from OSCAR those portions of the program that had been copied from ADAPTER. There is conflicting evidence as to Williams’ access to the ADAPTER code during the rewrite process. CA claims that it was accessible to him at least indirectly through his conversations with Arney, particularly at the time that Williams set up the parameter lists for the new OSCAR. Rather than decide the difficult factual issue that access presents in connection with OSCAR 3.5, the court instead assumes that Altai did have access, but finds that neither Williams nor any of the other programmers who worked on OSCAR 3.5 took advantage of the ADAPTER code that was available to them, either by direct copying or by indirect copying from OSCAR 3.4. Altai’s purpose in undertaking the rewrite of OSCAR was to eliminate from it all of the infringing aspects that had been included in version 3.4. The court finds that the Altai employees undertook that effort in good faith and adopted reasonable means to accomplish it. The question, then, becomes whether Altai did in fact accomplish their objective of developing a “clean” version of OSCAR, and that brings us to the second aspect of the copying element: substantial similarity, b. Substantial Similarity In most cases the “substantial similarity” inquiry presents the heart of a copyright infringement case; it requires the court to “decide whether the similarities shared by the works are something more than mere generalized ideas or themes.” Warner Bros. Inc. v. American Broadcasting Comyanies, 654 F.2d 204, 208 (2d Cir. 1981). This inquiry is fundamental, because the copyright act protects only the expression of ideas, and not the ideas themselves. Baker v. Selden, 101 U.S. (11 Otto) 99, 25 L.Ed. 841 (1879); Lotus Develoyment Corp. v. Paperback Software International, 740 F.Supp. 37, 42 (D.Mass.1990) (Keeton, J.); 17 U.S.C. § 102(b). “No amount of proof of access will suffice to show copying if there are no similarities.” Sid & Marty Krofft Television, 562 F.2d at 1172 (citing Arnstein v. Porter, 154 F.2d 464, 468 (2d Cir.1946)). In the context of computer programs, many of the familiar tests for similarity prove to be inadequate, for they were developed historically in the context of artistic and literary, rather than utilitarian, works. It may be this inadequacy that led the third circuit, in Whelan Associates v. Jaslow Dental Laboratory, 797 F.2d 1222 (3d Cir.1986), cert. denied, 479 U.S. 1031, 107 S.Ct. 877, 93 L.Ed.2d 831 (1987), to set forth what now seems to be a simplistic test for similarity between computer programs. In Whelan, the court adopted an extremely broad view of eopyrightability for a computer program. The court stated that “the purpose or function of a utilitarian work would be the work’s idea, and everything that is not necessary to that purpose or function would be part of the expression of the idea”, id. at 1236 (emphasis omitted), and therefore protectable by copyright. The purpose, and therefore the “idea”, of the program at issue in Whelan “was to aid in the business operations of a dental laboratory.” Id. at 1238. Therefore, “the detailed structure of the Dentalab program is part of the expression, not the idea, of that program”. Id. at 1239. Elsewhere in its opinion the Whelan court elaborated that as part of its broadly-defined “expression”, the “structure, sequence, and organization” of a computer program, in addition to its source and object codes, were protected by copyright. Id. at 1238-40. The Whelan test is inadequate and inaccurate. Professor Nimmer has pointed out one of its pitfalls: “The crucial flaw in this reasoning is that it assumes that only one ‘idea,’ in copyright law terms, underlies any computer program, and that once a separable idea can be identified, everything else must be expression.” 3 Nimmer on Copyright § 13.03[F], at 13-62.34. In the case at bar, Dr. Davis pointed out further technical flaws in the Whelan analysis which render its reasoning inadequate. As he so convincingly demonstrated, a computer program is made up of subprograms and sub-sub-programs, and so on. Each of those programs and sub-programs has at least one idea. Some of them could be separately copyrightable; but many of them are so standard or routine in the computer field as to be almost automatic statements or instructions written into a program. Dr. Davis further explained that a computer program must be viewed both as text and as behavior. The text perspective focuses upon the object code and the source code. Although not understandable to people untrained in computer programming, both object code and source code can be expressed in written form. Object code appears as a series of zeros and ones, representing the magnetic polarization of the “bits” that are read by the computer. The source code is a combination of words, symbols, and numbers used by programmers to describe, or provide the basis for, the object code of a particular program. A computer program, however, is more than a collection of zeros and ones. When properly loaded into a computer and provided with appropriate input from, for example, the keyboard, the program behaves. In a word processing program, for example, text can be deleted, blocks of text can be moved, formatting of documents can be changed; all sorts of operations can be instituted, and these can only be described as behavior. Similarly with a spreadsheet program, numbers can be added, subtracted, multiplied or divided; formulae can be developed to process the results of various computations; information can be inserted, deleted, moved, or processed in various ways. In this way, a spreadsheet program also behaves according to the instructions given to it. Central to Dr. Davis’s critisicm of the Whelan “structure, sequence, and organization” formulation is the fact that there is no necessary relationship between the sequence of operations in a program, which are part of behavior, and the order or sequence in which those operations are set forth in the text of the program — the source code and object code. As Dr. Davis pointed out, “the order in which sub-routines appear in the program text is utterly irrelevant”, and the two views of a computer program, as text and as behavior, are “quite distinct”. Each view — textual and behavioral — has its own structure, sequence, and organization. In the standard jargon of programmers, there is static structure, which refers to the program-as-text view, and dynamic structure, which refers to the program-as-behavior view. The static structure and dynamic structure of a program can be quite different; indeed from dealing with the behavior of a program, i.e., operating it, one can tell virtually nothing about its text. Thus, according to Dr. Davis, “it makes no technical sense to talk simply about the ‘structure’ of a program, because the term is ambiguous and the distinction [between dynamic structure and static structure] matters.” Whelan, therefore, is fundamentally flawed according to Dr. Davis, by failing to distinguish between the static and dynamic views of a program. When Whelan states in footnote 1 that the terms “structure”, “sequence”, and “organization”, are used interchangeably and are intended to be synonymous, the court’s view of computer science is “exactly wrong technically; it is precisely because a program is not only text, but also behaves, that these terms (in all their meanings) are not synonymous. The problem is thus compounded: where [prior to Whelan ] the terms were merely ambiguous, they have now been declared equivalent when they are not.” Going beyond Dr. Davis’s analysis, the court notes a possible statutory difficulty that arises when we recognize, as we must, that a computer program “behaves”. Section 102(a) provides that copyright protection subsists for original works of authorship including those making up computer programs. Subsection (b) provides, however: “In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work.” (emphasis added). Since the behavior aspect of a computer program falls within the statutory terms “process”, “system”, and “method of operation”, it may be excluded by statute from copyright protection. Indeed, it has been suggested that computer software is better protected by patent law than by copyright law. Comment, A Plea For Due Processes: Defining the Proper Scope of Patent Protection for Computer Software, 85 Nw.U.L.Rev. 1103, 1123-25 (1991). Fortunately, this court need not wrestle with that possible development in the law of intellectual property, because CA’s rights in this case are fully protected by viewing the ADAPTER program as text. In determining the similarities between OSCAR and ADAPTER, therefore, our attention turns away from the programs as behavior and focuses more closely on the programs as text, i.e., the source code and object code. Professor Nimmer suggests that in lieu of the Whelan test of “structure, sequence, and organization”, a better approach to determining similarities in computer programs can be found in the “abstractions test” first enunciated by Learned Hand in Nichols v. Universal Pictures, 45 F.2d 119, 121 (2d Cir.1930), cert. denied, 282 U.S. 902, 51 S.Ct. 216, 75 L.Ed. 795 (1931). Professor Nimmer’s suggestion is helpful. The abstractions test not only has the endorsement of one of the most distinguished judicial writers on copyright law; it is also the law of this circuit. The “abstractions test” of Nichols reads: Upon any work * * * a great number of patterns of increasing generality will fit equally well, as more and more of the incident is left out. The last may perhaps be no more than the most general statement of what the [work] is about and at times might consist only of its title; but there is a point in this series of abstractions where they are no longer protected, since otherwise the [author] could prevent the use of his “ideas” to which, apart from their expression, his property is never extended. Nichols, 45 F.2d at 121. As applied to computer software programs, this abstractions test would progress in order of “increasing generality” from object code, to source code, to parameter lists, to services required, to general outline. In discussing the particular similarities, therefore, we shall focus on these levels. i. Similarities between ADAPTER and OSCAR 3.4 This question need not detain us long, for Altai concedes that a substantial part, approximately 30 percent, of OSCAR 3.4 was copied directly from the source code of ADAPTER that Arney took from CA. Thus, with respect to OSCAR 3.4, Altai admits infringement. In late 1988, as we have seen, OSCAR was rewritten as version 3.5, which completely replaced OSCAR 3.4 with all of Altai’s customers by July 1989. Since OSCAR 3.4 has now been completely abandoned, there is no need for injunctive relief. On this aspect of the case, therefore, there remains only the matter of determining what damages should be awarded to CA for Altai’s infringement with OSCAR 3.4 during the period in which that program was used. These damages will be discussed later in this opinion. ii. Similarities between ADAPTER and OSCAR 3.5 After Altai learned, from the complaint in this action and its ensuing investigation, how Arney had copied from ADAPTER in order to develop OSCAR 3.4, it set about to rewrite the OSCAR program by developing OSCAR 3.5 independent of the ADAPTER code. This rewriting process was described earlier in this opinion. Since there is no direct evidence of copying from ADAPTER to OSCAR 3.5, the point of analysis turns to whether, after the rewrite, OSCAR 3.5 is substantially similar to ADAPTER. If so, it infringes CA’s copyright, and CA would be entitled to injunctive relief and damages based on OSCAR 3.5. If not, then there was no infringement by OSCAR 3.5 and this part of CA’s complaint should be dismissed. Based upon all the evidence in the case, the evaluations of Dr. Davis, the court’s own evaluations of the reports of the experts for CA and Altai, and the impact on these facts and circumstances of the applicable law of copyright as applied to computer programs, discussed above, the court finds and concludes that — even assuming that Altai had access to ADAPTER’S source code — after the rewrite, OSCAR 3.5 was not substantially similar to ADAPTER, and therefore did not infringe CA’s copyright. CA’s expert, Dr. Popper, devoted most of his direct testimony, as set forth in his report, to establishing the similarities between ADAPTER and OSCAR 3.4, an issue that Altai did not contest. The major points of similarity cited by Dr. Popper were object code, source code, parameter lists, macros, and so-called high-level structure. Dr. Davis addressed the relative importance of these factors to a computer program. He realized that some other cases had approached the problem of substantial similarity by merely counting lines of code identical in the two programs. But, as Dr. Davis correctly noted, some code is more important than others. Moreover, with respect to OSCAR 3.5, he found no need for any such detailed analysis of lines of code, because in the revision that was carried out by Altai in developing OSCAR 3.5, there remained virtually no lines of code that were identical to ADAPTER. With respect to the parameter lists and the macros, there was evidence from which one might infer there had been some copying; at the same time, there was evidence that many, if not most, of the parameter lists and macros were dictated by the functionality of the program. The operation that both ADAPTER and OSCAR had to perform was to translate the calls for operating-system services that were required by the applications program into a form that could be read by the particular operating system. In this case, the operating system was established by IBM, and the forms for calls for services from each of the three IBM operating systems lie in the public domain, because they are intended to be known in the industry and to be used by programmers. On the other side of ADAPTER and OSCAR, the task-specific side, the calls for services from the operating system are made by different applications programs— SCHEDULER for CA, and ZEKE, ZACK, and ZEBB for Altai. There is no claim that Altai’s applications programs infringe the task components of CA’s application programs. Thus, many of the parameters and macros were dictated by external factors and could not be deemed to be infringing. Dr. Davis found that on the evidence presented he could not make a determination whether the parameter lists and macros of OSCAR 3.5 had been copied to any significant extent from ADAPTER. Although he invited further evidence from the parties’ experts on the point, not enough was forth-coming to warrant any further comment by him. As a result, the court finds that — with respect to the parameter lists and macros of OSCAR 3.5— CA has failed to meet its burden of proof of copying, because it has failed to prove “substantial similarity” between those of OSCAR 3.5 and those of ADAPTER. With respect to the list of services required for ADAPTER and OSCAR, there was considerable overlap, but a great deal of that was required by the demands of functionality and was not attributed by Dr. Davis, nor is it by the court, to direct copying. Furthermore, because the list of services is so extensively determined by the demands of the operating system and of the applications program to which it is to be linked through ADAPTER or OSCAR, it has little importance in the overall picture of similarity. As to the so-called high-level structure, as reflected in the organization chart, the court accepts Dr. Davis’s evaluation that it was not important, because it was so simple and obvious to anyone exposed to the operation of the program. Taking an overall view of “similarity”, Dr. Davis attempted to quantify the relative importance of the various factors of similarity on which CA relied. He evaluated them as follows: Code 1,000 Parameter Lists 100 Macros 100 List of Services 1 Organization Chart Nil As applied to OSCAR 3.5, the factor which is by far the most important — code, rated at 1,000 — presents no similarity at all, because the code was rewritten. The parameter lists and macros, combined, amount to 200, but on these factors, CA failed to carry its burden of proving substantial similarity. Even without a burden-of-proof analysis, however, the evidence is conflicting and, viewed most favorably to CA, would show that only a few of the lists and macros were similar to protected elements in ADAPTER; the others were either in the public domain or dictated by the functional demands of the program. The court thus finds and concludes that there was no substantial similarity established in either the parameter lists or the macros. The list of services, as viewed by Dr. Davis and accepted by the court, is minuscule in importance and, even when linked with the organization chart, does not present sufficient evidence of substantial similarity to warrant a finding of infringement. In sum on this point, while OSCAR 3.4 included approximately 30 percent of verbatim copying of ADAPTER’S code, when Altai rewrote the program into version 3.5, it eliminated the offending sections of copied code. The method it used for the rewriting process was, as Dr. Davis testified, a reasonable method. As Dr. Davis further testified, Altai’s cleanup effort “was clearly what I would describe as — I don’t want to trip over legal terms, a good faith effort to correct something that was wrong.” The court finds and concludes that OSCAR 3.5 was not substantially similar to CA’s ADAPTER program, that it was not copied from ADAPTER, and that it did not infringe CA’s copyright on ADAPTER as contained in any of the registrations for CA-SCHEDULER. B. Misappropriation of Trade Secrets On the first day of trial, Altai conceded that they would not dispute the merits of CA’s misappropriation of trade secrets claim insofar as they were based on Altai’s use of the ADAPTER source code taken from CA by Arney. Therefore, in regard to CA’s trade secrets claim, the court will address only the following issues: Does the federal copyright law preempt state trade secret law? Which state’s choice of law principles apply? Which state’s substantive law applies? If Texas law applies, is CA’s claim barred by the Texas statute of limitations? These issues are discussed seriatim. 1. Preemption a. Law of the case? Altai contends that § 301(a) of the copyright act preempts CA’s claim for misappropriation of trade secrets. CA’s initial line of response is that Judge Mishler’s ruling of October 13, 1989, denying Altai’s motion for summary judgment on this ground, is the law of the case. In that memorandum order, Judge Mishler held: “The elements of the tort of appropriation of trade secrets through the breach of contract or confidence by an employee are not the same as the elements of a claim of copyright infringement”. Generally, when a court has ruled on an issue, that decision should be adhered to by that court in subsequent stages of that same case. Arizona v. California, 460 U.S. 605, 618, 103 S.Ct. 1382, 1391, 75 L.Ed.2d 318 (1983). But “[l]aw of the case [only] directs a court’s discretion, it does not limit the tribunal’s power.” Id. That discretion is informed, principally, by the concern that disregard of an earlier ruling not be allowed to prejudice the party seeking to benefit under the doctrine. United States v. Uccio, 940 F.2d 753, 758 (2d Cir.1991); United States v. Bimey, 686 F.2d 102, 107 (2d Cir.1982). “Prejudice” in this regard does not mean “harm”; “rath