much better structure