refactored render catcher class so MagicLamp doesn't need to know as much about it