move abstract to header