[_] 7% roadmap
	[_] 14% pre-production: staging and test
		[_] 57% test input
			[X] clean - RAW
			[X] rated (old) - RAW, XMP
			[X] rated (new) - RAW, XMP, preview (RAW)
			[_] processed (old) - RAW, XMP, PSD, preview
			[_] processed (new) - RAW, XMP, PSD, preview, preview (RAW)
			[_] missing previews...
			[X] 100% corner cases
				[X] duplicate files in one path...
		[_] 0% setup archive
		[_] 0% setup backup
		[_] 0% setup testing
			[_] stage
			[_] create / build
			[_] backup
			[_] test consistency
	[_] 16% stage I: basic workflow
		[_] 50% import
			[X] list files
			[X] group files
			[_] build missing element list
			| need a configurable element spec for this to be flexible...
			[_] 50% populate list
				[X] generate previews (missing)
				[_] load metadata
				[_] 0% generate tags
					[_] data
					[_] workflow
				[X] populate preview metadata
			[_] feed the data to the tagset
			| this step must be generic
			|
			| it is still unclear what steps are to be handled outside 
			| and what inside the tagset...
			[_] put it all together
		[_] 0% search / select
			[_] 0% output:
				[_] list of paths
				[_] list of IDs
		[_] 0% update (tags)
	[_] 0% stage II: advanced workflow
		[_] sync
		| write data to previews and originals
		[_] export
		| copy a list of previews to a given location and maintain consistency
	[_] 0% stage III: GUI




[_] 13% general tasks
	[_] 0% actions:
		[_] import
		[_] export/build
		[_] list/search tags
		[_] list/search content
	[_] 0% API
		[_] 0% basic
			[_] .import(...)
			[_] .export(...)
			[_] .tags(...)
			[_] .select(...)
		[_] 0% sync
	[_] 0% UI
		[_] HTML/HTML5
		[_] QT/PySide
		[_] command-line
			[_] ig
			| root script... name not final yet...
			[_] ig-init
			| create an empty archive...
			[_] ig-clone [OPTIONS] [TAGS] URL
			[_] 0% ig-sync
				[_] git-like interface
					[_] push/pull
					[_] clean
					[_] gc
			[_] ig-import [OPTIONS] [TAGS] PATH
			[_] ig-export [OPTIONS] [TAGS] PATH
			[_] ig-tags [OPTIONS] [TAGS]
			| either list all the tags or if any tags are given as input, list 
			| related tags...
			[_] 0% ig-select [OPTOINS] [TAGS]
			| list paths/ids of images tagged by tags.
				[_] 0% support complex queries
					[_] all (default)
					[_] any
					[_] none
			[_] ig-do ACTION [OPTIONS]
			| same as ig-action
	[_] 0% save diffs in pickle overlays...
	| need fast and simple way to save changes to a new spot...
		[_] 0% IDEA: use pli.logictypes.DictUnion
			[_] create a new layer on load
			[_] save only updated layers and create a new empty layer on save
			[_] be careful not to update other layers...
			| this can happen when adding a new object to a tag via an .update(...) method, in-place.
			|
			| need to use immutable data only.
	[_] 20% compleate the new tags module
		[X] .relatedtags(...)
		[_] see if we need strict and non-strict .relatedtags(...)
		[_] concatinative mode or abbility to build new tagsets from selections
		[_] tag chains support...
		[_] build a new tagset from list of objects or tags...
	[_] import test images and ratings
	[_] importer based on xmpgen
	[X] need unique image id
