refactored FrameManager