This sounds a little like an intro to writing "Enterprise" code. Essentially each function has to be its own interface. And you probably need some factory functions in addition.
Why not provide a set of static functions for ByteUtils that behave in a specified way and be done with it?