Refactor inheritance into dimensions, not form