
main idea:
	split as much as possible into sub classes, perhaps
	even splitting the sub compements into seperate dirs


	
Main areas:

	app class
	  (more or less just a central point to hang everything off of)

	rpm stuff
	    -mostly moved
	    Rpm
	       high level class for OO access to rpm stuff
	    RpmDB 
		ditto, for db stuff
	    TransactionSet
		

	Error stuff
		error classes, etc
	    -partially moved

	Recipes/Actions

	RHN Info
	   Channels
	     -get
	     -subscribe
	     -unsubscribe

	   RhnPackageList
	     -update
	     -addPackage
	     -deletePackage

	Headers
	    class with built in cache for headers
	    need "Header" object?
	    make all the stuff that currently calls "getHeaders"
             to use this instead? 


	Retrival
	   (classes for fetching packages/info)
	  -getHeader
	  -getPackage
	  -getPackageSource
	  -getPackageList

	   (types of classes):
		http
		xml-rpc
		memory
		disk cache
		local disk
		
	Log
	  -moved
	Auth
	  -moved

	Config
	   -moved, but not smart yet
	    should be some sort of delegator class?
		(hide a hierachy of stuff behind a common interface)
		sort of the opposite of a chain-of-resposibility

	    persistentConfig

	    runtimeConfig
		network config
		variables
		commandine options
		etc

	Register
	    all the stuff for doing registration

	DepencySolver
	 -moved
	   -add
	   -remove
	   -run

	Clap

	PackageList	
	  -moved
	   hide away all the package list filtering
	   crap as methods of this class

	RpcClass
	   rpc stuff

	ErrataInfo

Stuff using appClass and friends

	tui-up2date?
	tui-rhn_register

	gui-up2date
	gui-rhn_register
	
	non-interactive-up2date
	non-interactive-rhn_register


