changes to encoding... again, now using source.with.encoding