Looks to me that format is only used as an auxiliary function by object and list, should we make it private?