this works better! can operate on byte pointers, AND on replacement, data is padded to multiple of 4 bytes