add test proj
extract mapping logic to independent class.  push sorting into getkeycommand.  add delayed looping to service
add logging, refactor code layout
add log4net to projects
clean up namespances
merge