More class hiearchy refactoring