formatter: drop internalFormatter
diff --git a/formatter.go b/formatter.go
index 6c9560d..fc0ebd7 100644
--- a/formatter.go
+++ b/formatter.go
@@ -18,9 +18,6 @@
 	Format(*Entry) ([]byte, error)
 }
 
-type internalFormatter struct {
-}
-
 // This is to not silently overwrite `time`, `msg` and `level` fields when
 // dumping it. If this code wasn't there doing:
 //
@@ -33,7 +30,7 @@
 //
 // It's not exported because it's still using Data in an opionated way. It's to
 // avoid code duplication between the two default formatters.
-func (f *internalFormatter) prefixFieldClashes(entry *Entry) {
+func prefixFieldClashes(entry *Entry) {
 	_, ok := entry.Data["time"]
 	if ok {
 		entry.Data["fields.time"] = entry.Data["time"]
diff --git a/json_formatter.go b/json_formatter.go
index c3fb9b8..c0e2d18 100644
--- a/json_formatter.go
+++ b/json_formatter.go
@@ -6,11 +6,10 @@
 )
 
 type JSONFormatter struct {
-	*internalFormatter
 }
 
 func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) {
-	f.prefixFieldClashes(entry)
+	prefixFieldClashes(entry)
 
 	serialized, err := json.Marshal(entry.Data)
 	if err != nil {
diff --git a/text_formatter.go b/text_formatter.go
index 09fafde..d71eba1 100644
--- a/text_formatter.go
+++ b/text_formatter.go
@@ -27,14 +27,12 @@
 type TextFormatter struct {
 	// Set to true to bypass checking for a TTY before outputting colors.
 	ForceColors bool
-
-	*internalFormatter
 }
 
 func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
 	b := &bytes.Buffer{}
 
-	f.prefixFieldClashes(entry)
+	prefixFieldClashes(entry)
 
 	if f.ForceColors || IsTerminal() {
 		levelText := strings.ToUpper(entry.Data["level"].(string))[0:4]