Rework inheritance