New variable system
cut out old replacement system and moved the majority of structure type
handling to CachedCall