added iterator frame::write ovrld, reduced alloc