added some code documentation