fixed various issues with abstract classes.