implement column page (but including some bugs)