More abstract class changes, see #346