From JohnClonts // Lets Run the Company! Company::Run() { while ( !done() ) { makeMoney(); beHappy(); } } /** All objects in our company are required to implement this interface */ Interface IMoneyMaker { void makeMoney(); } Company::makeMoney() { marketing.getMoreCustomers(); marketing.enhanceCustomerRelationship(); operations.deliverService(); accounting.getPaid(); // or perhaps marketing.makeMoney(); operations.makeMoney(); accounting.makeMoney(); // or even for (each subUnit in subUnits[]) subUnit.makeMoney(); } Accounting::makeMoney() { readMeters(); } Meter::makeMoney() { myRate.setUsage( myReading); } Rate::makeMoney() { theCustomer.pay( this); } Now, is this a visionary step which leads to a CompanyOperatingSystem, whereby any/all levels of management might exercise their span of authority by a plug-and-play 3d SimCity-Electric? Or is it just a HUGE case of DontEatTheMenu. The Compiler's new role: Recompiling the company, rather than the program. Hmm. See also: SimulateTheIndustry ---- CategoryHumor