less complex core first