use bytes.Buffer instead of string+++, add benchmark to show that it's superior