playing with inheritance pattern