add size fixer and some function change