--- /dev/null
+Some ideas for a big refactoring of code.
+
+
+Input
+=========
+ handle MLT connection ((re-)move from renderer.cpp (hacks, special cases))
+ handle project document entry
+ draw layer on clip instances in timeline (thumbnails)
+ settings management (available through project tree items)
+ proxy creation
+ input method (register mimetype in file dialog, custom widget)
+ effect support (a, v, av, special effects (freeze, speed))
+
+ => modules for avformat, qimage/gtk_image(?), generators (slideshow, color, f0r)
+
+
+Timeline
+=========
+ provides basic operations (resize, move, add, remove) (GUI + XML + MLT) to be applied on any item
+
+ => modules for input modes (drag & drop, 3/4-point editing, cut, resize by dragging end), spacer, ripple edit, push/pull edit, ...)
+
+Clip instances
+-------
+ connection to input module
+ manage project document entry
+ information about support for timeline operations
+ owns an effect device
+ per instance settings (functionality provided by input module)
+ graphical timeline item (modules can register layers they want to draw (thumbnails, effect names, keyframes))
+
+Clip groups
+------
+ manage project document entry
+ pass on operations to items
+
+
+Effect system
+=========
+Keyframe manager
+------
+ pipe information from/to timeline effect device, effect stack, effect parameter
+
+Effect parameter
+------
+ custom widget
+ function to handle keyframes -> connect to keyframe manager
+ written in QScript/QML ?
+
+Effect device
+------
+ manages list of effects attached to clip, track, timeline, group, the world
+ passes info from/to timeline items and effect stack
+ manage project document entry
+
+
+Project
+=========
+ read/write
+ project settings management
+ provide functionality to manage settings (remove hardcoded stuff (slideshow, proxy, ...))
+
+
+Interface
+=========
+ provide functions to add menu items, global actions (for shortcut management)
+ layout management
+ styles management (see digikam)
+ ...