implements backforward list