add inheritance and modules