now with inheritance!