
    -	Need meta-client API.

    -	Do we need strings to represent NULL and empty (what if the standard
	adds something where a string parameter can be null distinguished from
	an empty value).

    -	Expose repository inheritance tree.

    -   Look at not passing HTTP header to CIM request decoder queue.

    -	Propagate message key for all messages pertaining to a particular 
	request.

    -	Run Purify on all sources (port to Sun first).

    -	Rework Pegasus to use asynchronous I/O.

    -	Finalize export client/server:

	    -	Covert GetClass operation to DeliverIndication operation.

	    -   Rework export-client to asynchronously process responses 
		(instead of the RPC style used now).

	    -	Need meta-export-client (with connection management).

	    -	Implement disconnect() logic.

    -	Remove keys from messages?

    -   Get rid of unused source code (dealing with channels and TCP).

    -   Rethink the useage of queue-ids in messages and how requests and
	responses are matched up. Queue-ids are only used on the server
	side. Perhaps a more general mechanism can be found.

    -   Fix bug in which the messageId is calculated inside the XmlWriter.
	It should be calculated by the caller.

    -	Delete CIMOperations.h.

    -	Get rid of message keys? They don't seem to be used.

    -	Fix bug in src/Pegasus/Client/tests/Client in which associators()
	fails and says class does not exist (seems to happen in debug mode
	only). Disappears when I/O is enabled.

    -	Replace old headers with new ones (co-ordinate with team).

    -	Get rid of usage of System (use since it

    -	Migrate to use of Linkage.h files.

    -   Document that lex and yacc are no longer a requirement to build
	Pegasus.

    -	Figure out how to handle very large CIM respones and possibly
	requests too.

    -   Integrate client/server tests into make system somehow.

    -   Note that it is possible to remove an class and still have association
	classes which refer to it.

    -   Class inheritance not taken into consideration when resolving the
	AssocClass

    -   It seems that associatios() will fail when AssocClass is a super
	class of the class which is in the association instance table.

    -   Should there be a single associations table for the entire repository
	or should there be one per namespace as there is now?

    -   If it is the case that a reference may only refer to an instance,
	then we must derive new types for representing object paths.

    -   Many CIM operations interfaces are incorrect: GetInstance() for example
	takes a namespace and a CIMReference (which also may contain the 
	namespace). According to the standard, it should take an "InstanceName".

    -   Need way of signaling the cimserver so that it will reload the
	class inheritance table (after a MOF compile).
    
    -   Revisit use of namespace v.s. objectName in all CIM operations.

    -   What do we do when getInstance() is called and the nameSpace is
	provided both as an argument and as part of the instance name?

    -   ReferenceNames should return classes not just instances?

    -   Remove final const from const methods in non-const CIM element classes.

    -   Null vs. empty CIM/HTTP parameters.

    -   Resolve constness problems. (get rid or Const classes?)

    -	Change CIMReference to CIMObjectPath?

    -	Finish associations.

    -	Provide CIMOM Context.

    -	Complete conventions document.

    -   The CIMServer.exe program should probably create the logs directory
	under PEGASUS_HOME.

    -   Clean up exceptions.

    -   Resolve redundancy in which the namespace is passed to certain methods
	(getClass) and the CIMReference itself may contain a namespace arguent.

    -	Implement consistency and constraint checking on classes and instances.

    -   Implement filtering (using includeQualifiers, localOnly, etc.)

    -	Consider eliminating const CIM element classes.

    -   Support for NULL property lists (in interface and protocol).

    -   Rename tests (prepend "Test" to each test).

    -   Fix bug with cimserver.exe causing it to fail to start without te
	"-l" option.

    -   Resolve whether the backslash should be permitted in namespaces.

    -   Create CIMOMContext (interface to CIMOM used b the provider).

    -	Define Encoding module interface.

    - 	Develop XMLEncodings module.

    - 	Develop BinaryEncodings module.

    - 	Develop MOFEncodings module.

    -	Employ BinaryEncodings module in repository (reduce disk usage).

    -   Combine repository instances, classes, and qualifiers  into their
	respective files (to reduce the number of files).

    -	Employ an efficient indexing scheme in repository (B-trees or hashing).

    -	Develop module manager: interface, lookup scheme, and loading scheme.

    -   Package Encodings classes as a module.

    -   Finalize repository assocations.

    -   Add association CIM/HTTP operations.

    -   Design association provider infrastructure.

    -	Implement missing CIM protocol operations.

    -   Implement good observer module interface which allows different levels:

	-   Observation of client/CIMMOM connections/disconnection.

	-   Observation of client/CIMOM communication.

	-   Observation of CIMOM/repository communication.

	-   Observation of CIMOM/provider communication.

	-   Observation of CIMOM state transitions.

    -	Pegasus providers for Sun WBEM Services.

    -	Pegasus providers for WMI.

    -	Sun WBEM Services providers for Pegasus.

    -   CIM/HTTP Proxy for WMI.

    -   Web Server/Pegasus Integration (use HTTP protocol capabilities of
	web server rather than Pegasus).

    -   Add CIMRepository::namespaceExists() method.

    - 	Change HTTP message id's to this format: "YYYY.MM.DD.HH.MM.SS.NNNNN".

    - 	GetInstances() and GetClasses() need to use iterators on
	provider and repository end. Otherwise, all classes or instance
	to be enumerated, must be sucked into memory.

    -   Template bloat reduction.

    - 	Need a tool to say which features are supported by a compiler.

    -   Support unloading of dynamic libraries (presently only load() is
	supported).

    -	Clean up and consolidate exception classes.

    -	Asynchronous socket writes in the CIMOM (need write enabled flags).

    -	Handle PARAMETER.REFARRAY in Procotol?

    -	Implemented stream oriented XML parsing.

    -	Ignore extraneous XML elements (implement "loose validation" concept).

    -	Add methods to get objects by their names, in addition to index. For
	example:

	    CIMProperty CIMClass::getProperty(const String& name);

    -	Distinguish between private and public classes (otherwise, users may
	come to depend on classes with unstable interfaces).

    -	Walk through all code to expose consistency/aesthetic issues.

    -	Provide ACE Channel implementation (for porting purposes)?

    -	Expand datatime (setCurrentTime() and comparison and increment 
	functions).

    -	Write Pegasus Architecture Paper.

    -	Implement MOF provider registration scheme (according to the
	standard).

    -	WBEM Query Language and integration.

    -   Threading

    -	Package up pegasus in Install Shield application.

    -	Internationalization: Handle UCS2 characters in XML 
	(parsing and writing).

    -	Export of repository to MOF.

    -   Change CompareNoCase() to String::compareNoCase().

    -	Figure out how to handle CIM NULL values.

    -	Figure out how inheritance of keys works.

    -	Investigage weak associations.

    -	Enforce constraint qualifiers.

    -	Disallow resetting size of fixed length arrays.

    -	Shrink object sizes.

    -	Use lighter I/O system (than C++ streams).

    -	Optimize clear method on arrays (to not release memory).

    -	Provide conversions between DateTime and time_t.

    -	Port to Solaris

    -   Support multiple providers of the extact same class.
	DiskController example and LanController.

    -   SLP - Eliminate lib directory.
