refactoring, add size