added overwrite edge case behavior (writing past end of file -- auto-allocates file size)