refactor scene_handler