Implement columns, based loosely on Simon's Windows implementation. Now this