use memmove() instead of memcpy() for overlapping updates and some debugging
more DIDNT_FIT logic improvements/fixes