format() now duck types better