Refactored with FrameBuffer