initial commit (desktop version)

reorginize source