pad to one less than length because we are adding a space