refactoring, use less columns