Now uses col elements rather than adding width to headers. Fixes so it can work with or without headers, and cleaner code calculations