Rethinking inheritance / module organization