Use set for arrays and update for Objects
Add check for strings passed instead of refs
Use update on objects only if limits are in effect
s/Exception/Error