1) non-blocking (for other clients) update j) when reading new directory db, we should block some signals when manipulating the directorydb, so we don't receive a signal to quit in the middle of an update k) when bg-update, have parent print out new old stuff to log on reading db, not the child m) MOST IMPORTANT: update needs to deal better with directories/files that don't exist in the db, but do exit in the fs (i.e. calling updated on a newly created file). n) mpd command for rereading db 2) crosslink "list" stuff, for example, artists are crosslinked to alubms and vice versa, this way you can do list album artists or list artist albums, this will make life easier when we add genre and other metadata 3) have children close all logging stuff, and redirect stdout and stderr to /dev/null, and set error bits in the shared log for the parent process to check when it receives a SIGUSR1, and print logs and then reset values of error bits. (don't redirect children's stdout and stderr to /dev/null if mpd is run with --no-daemon) 4) cleanup main()