again, why do we need empty abstract classes?