cleanup and abstract class fixes