added Character abstract class