added some comment and change internal func to private

some comment marked TODO, need to discuss it