concept ok, need much tidying up