added in-code documentation