improved MagicObject with magic isset and magic unset fns