Introducing ByteArrayModelBinder.

Consider moving **all** of this code to a helper method. It looks like the entire if/else is duplicated