UNSTABLE, refactoring inheritance tree.