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]
