go through again, new abstract