In ASM column are virtually defined so in the old code I didn't used a separate class fo them
this caused confusion for some readers so I've defined columns as a new type in this commit no algorithm has been changed and just cell vectors has been renamed to columns