Compilation runs better with this hierarchy