implement forward and scavange