Updated to be less interfacy and more byte-slicey