abstracted out header-footer line of hyphens
speed optimization: switched to core.match so we wouldn't have to do an 'if' or a boolean cast every time we print a cell