diff --git a/commands/command.go b/commands/command.go
index 2ecb6ee29eb68cf001f066a9bfa660e122e59902..17487b7e1d04630cd31d679c9b3f5a9debe976d4 100644
--- a/commands/command.go
+++ b/commands/command.go
@@ -15,10 +15,9 @@ var log = u.Logger("command")
 // It reads from the Request, and writes results to the Response.
 type Function func(Response, Request)
 
-// Formatter is a function that takes in a Response, and returns a human-readable string
+// Marshaller is a function that takes in a Response, and returns a marshalled []byte
 // (or an error on failure)
-// MAYBE_TODO: maybe this should be a io.Reader instead of a string?
-type Formatter func(Response) (string, error)
+type Marshaller func(Response) ([]byte, error)
 
 // TODO: check Argument definitions when creating a Command
 //   (might need to use a Command constructor)
@@ -33,7 +32,7 @@ type Command struct {
 	Options     []Option
 	Arguments   []Argument
 	Run         Function
-	Format      Formatter
+	Format      Marshaller
 	Type        interface{}
 	Subcommands map[string]*Command
 }
diff --git a/commands/response.go b/commands/response.go
index f703299e8d870b5b77063afea06dabc91de34404..8cc724f3d10846360d8f002b6896ea4245439f56 100644
--- a/commands/response.go
+++ b/commands/response.go
@@ -40,10 +40,6 @@ const (
 	// TODO: support more encoding types
 )
 
-// Marshaller is a function used by coding types.
-// TODO this should just be a `coding.Codec`
-type Marshaller func(res Response) ([]byte, error)
-
 var marshallers = map[EncodingType]Marshaller{
 	JSON: func(res Response) ([]byte, error) {
 		if res.Error() != nil {
@@ -63,11 +59,11 @@ var marshallers = map[EncodingType]Marshaller{
 			return nil, ErrNoFormatter
 		}
 
-		s, err := format(res)
+		bytes, err := format(res)
 		if err != nil {
 			return nil, err
 		}
-		return []byte(s), nil
+		return bytes, nil
 	},
 }