split - var cache must be in global scope to avoid being overridden