Event Page_Load { Contination cont = ViewState["cont"]; state.Call(RequestData); } EventLoop { RequestData = GetRequestData() //Process requestData similar to a WM_MESSAGE loop, fire events. ProcessEvents(RequestData); RenderHtml(); Output shit to client. } RequestData GetRequestData() { RequestData data = callcc RequestData {|cont| ViewState["State"] = cont; } return data; }