Use consts for class strings
mutate the incoming hash

I'd rather not, but this object should be local to the caller at this
point so it seems less bad than creating a bunch more objects
add fallback deserialization to hash for Resources