Added abstract class support