added some source code documentation