use eval for determing the self.class.name useful when this is used in an
abstract class