a working version...
documentation updates, still lack of source code comments...
add some source code comments