nice approach to test abstract classes