Refactored columns to utilize ColumnProperties instead of values directly applied to the case class.
Added capability to add column properties outside of instantiation for better support for circular key pointers.