Loosely sketched out version