my abstract classes