change abstract to be more consitent