some fix + insert, but need revision code(warning)