more cleanup on abstract