fix bug & update TODO